Noise (empty) → 1.0.0
raw patch · 426 files changed
+48274/−0 lines, 426 filesdep +arraydep +basedep +data-defaultsetup-changedbinary-added
Dependencies added: array, base, data-default, vector
Files
- .git/HEAD +1/−0
- .git/config +11/−0
- .git/description +1/−0
- .git/hooks/applypatch-msg.sample +15/−0
- .git/hooks/commit-msg.sample +24/−0
- .git/hooks/post-commit.sample +8/−0
- .git/hooks/post-receive.sample +15/−0
- .git/hooks/post-update.sample +8/−0
- .git/hooks/pre-applypatch.sample +14/−0
- .git/hooks/pre-commit.sample +46/−0
- .git/hooks/pre-rebase.sample +169/−0
- .git/hooks/prepare-commit-msg.sample +36/−0
- .git/hooks/update.sample +128/−0
- .git/index binary
- .git/info/exclude +6/−0
- .git/logs/HEAD +1/−0
- .git/logs/refs/heads/master +1/−0
- .git/objects/pack/pack-507167148f2f0c4da1bb78035f7d1ece57e1688d.idx binary
- .git/objects/pack/pack-507167148f2f0c4da1bb78035f7d1ece57e1688d.pack binary
- .git/packed-refs +2/−0
- .git/refs/heads/master +1/−0
- .git/refs/remotes/origin/HEAD +1/−0
- Changelog.txt +80/−0
- LICENSE +20/−0
- Math/Noise.hs +16/−0
- Math/Noise/Interpolation.hs +38/−0
- Math/Noise/Modules/.Billow.hs.swo binary
- Math/Noise/Modules/Abs.hs +13/−0
- Math/Noise/Modules/Billow.hs +55/−0
- Math/Noise/Modules/Perlin.hs +61/−0
- Math/Noise/Modules/ScaleBias.hs +19/−0
- Math/Noise/Modules/Select.hs +53/−0
- Math/Noise/Modules/billow.c +13/−0
- Math/Noise/Modules/perlin.c +44/−0
- Math/Noise/Modules/perlin.h +2/−0
- Math/Noise/NoiseGen.hs +156/−0
- Math/Noise/NoiseModule.hs +62/−0
- Math/Noise/Test.hs +52/−0
- Math/Noise/VectorTable.hs +327/−0
- Math/Noise/common.h +93/−0
- Math/Noise/noisegen.c +342/−0
- Math/Noise/noisegen.h +2/−0
- Noise.cabal +69/−0
- README.txt +124/−0
- Setup.hs +6/−0
- dist/build/HSNoise-0.0.1.o binary
- dist/build/Math/Noise.hi binary
- dist/build/Math/Noise.o binary
- dist/build/Math/Noise/Interpolation.hi binary
- dist/build/Math/Noise/Interpolation.o binary
- dist/build/Math/Noise/Modules/Abs.hi binary
- dist/build/Math/Noise/Modules/Abs.o binary
- dist/build/Math/Noise/Modules/Billow.hi binary
- dist/build/Math/Noise/Modules/Billow.o binary
- dist/build/Math/Noise/Modules/Perlin.hi binary
- dist/build/Math/Noise/Modules/Perlin.o binary
- dist/build/Math/Noise/Modules/ScaleBias.hi binary
- dist/build/Math/Noise/Modules/ScaleBias.o binary
- dist/build/Math/Noise/Modules/Select.hi binary
- dist/build/Math/Noise/Modules/Select.o binary
- dist/build/Math/Noise/Modules/perlin.o binary
- dist/build/Math/Noise/NoiseGen.hi binary
- dist/build/Math/Noise/NoiseGen.o binary
- dist/build/Math/Noise/NoiseModule.hi binary
- dist/build/Math/Noise/NoiseModule.o binary
- dist/build/Math/Noise/VectorTable.hi binary
- dist/build/Math/Noise/VectorTable.o binary
- dist/build/Math/Noise/noisegen.o binary
- dist/build/autogen/Paths_Noise.hs +29/−0
- dist/build/autogen/cabal_macros.h +30/−0
- dist/build/libHSNoise-0.0.1.a binary
- dist/package.conf.inplace +2/−0
- dist/setup-config +2/−0
- libnoise/COPYING.txt +504/−0
- libnoise/noise/INSTALL +34/−0
- libnoise/noise/Makefile +23/−0
- libnoise/noise/doc/Doxyfile +215/−0
- libnoise/noise/doc/Makefile +14/−0
- libnoise/noise/doc/html/abs_8h-source.html +181/−0
- libnoise/noise/doc/html/add_8h-source.html +182/−0
- libnoise/noise/doc/html/annotated.html +161/−0
- libnoise/noise/doc/html/background.png binary
- libnoise/noise/doc/html/basictypes_8h-source.html +171/−0
- libnoise/noise/doc/html/billow_8h-source.html +273/−0
- libnoise/noise/doc/html/blend_8h-source.html +196/−0
- libnoise/noise/doc/html/cache_8h-source.html +200/−0
- libnoise/noise/doc/html/checkerboard_8h-source.html +182/−0
- libnoise/noise/doc/html/clamp_8h-source.html +204/−0
- libnoise/noise/doc/html/classnoise_1_1Exception.html +141/−0
- libnoise/noise/doc/html/classnoise_1_1Exception.png binary
- libnoise/noise/doc/html/classnoise_1_1ExceptionInvalidParam.html +140/−0
- libnoise/noise/doc/html/classnoise_1_1ExceptionInvalidParam.png binary
- libnoise/noise/doc/html/classnoise_1_1ExceptionNoModule.html +142/−0
- libnoise/noise/doc/html/classnoise_1_1ExceptionNoModule.png binary
- libnoise/noise/doc/html/classnoise_1_1ExceptionOutOfMemory.html +140/−0
- libnoise/noise/doc/html/classnoise_1_1ExceptionOutOfMemory.png binary
- libnoise/noise/doc/html/classnoise_1_1ExceptionUnknown.html +140/−0
- libnoise/noise/doc/html/classnoise_1_1ExceptionUnknown.png binary
- libnoise/noise/doc/html/classnoise_1_1model_1_1Cylinder-members.html +126/−0
- libnoise/noise/doc/html/classnoise_1_1model_1_1Cylinder.html +312/−0
- libnoise/noise/doc/html/classnoise_1_1model_1_1Line-members.html +130/−0
- libnoise/noise/doc/html/classnoise_1_1model_1_1Line.html +481/−0
- libnoise/noise/doc/html/classnoise_1_1model_1_1Plane-members.html +126/−0
- libnoise/noise/doc/html/classnoise_1_1model_1_1Plane.html +307/−0
- libnoise/noise/doc/html/classnoise_1_1model_1_1Sphere-members.html +126/−0
- libnoise/noise/doc/html/classnoise_1_1model_1_1Sphere.html +313/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Abs-members.html +129/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Abs.html +245/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Abs.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Add-members.html +129/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Add.html +245/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Add.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Billow-members.html +147/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Billow.html +739/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Billow.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Blend-members.html +131/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Blend.html +329/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Blend.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Cache-members.html +134/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Cache.html +326/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Cache.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Checkerboard-members.html +129/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Checkerboard.html +247/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Checkerboard.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Clamp-members.html +134/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Clamp.html +407/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Clamp.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Const-members.html +132/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Const.html +352/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Const.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Curve-members.html +138/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Curve.html +521/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Curve.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Cylinders-members.html +132/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Cylinders.html +355/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Cylinders.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Displace-members.html +136/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Displace.html +544/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Displace.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Exponent-members.html +132/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Exponent.html +351/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Exponent.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Invert-members.html +129/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Invert.html +245/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Invert.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Max-members.html +129/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Max.html +245/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Max.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Min-members.html +129/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Min.html +245/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Min.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Module-members.html +128/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Module.html +440/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Module.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Multiply-members.html +129/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Multiply.html +245/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Multiply.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Perlin-members.html +147/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Perlin.html +761/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Perlin.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Power-members.html +129/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Power.html +247/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Power.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1RidgedMulti-members.html +146/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1RidgedMulti.html +713/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1RidgedMulti.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1RotatePoint-members.html +148/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1RotatePoint.html +595/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1RotatePoint.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1ScaleBias-members.html +135/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1ScaleBias.html +427/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1ScaleBias.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1ScalePoint-members.html +140/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1ScalePoint.html +596/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1ScalePoint.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Select-members.html +139/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Select.html +570/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Select.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Spheres-members.html +132/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Spheres.html +355/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Spheres.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Terrace-members.html +142/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Terrace.html +630/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Terrace.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1TranslatePoint-members.html +140/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1TranslatePoint.html +596/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1TranslatePoint.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Turbulence-members.html +141/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Turbulence.html +593/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Turbulence.png binary
- libnoise/noise/doc/html/classnoise_1_1module_1_1Voronoi-members.html +141/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Voronoi.html +585/−0
- libnoise/noise/doc/html/classnoise_1_1module_1_1Voronoi.png binary
- libnoise/noise/doc/html/const_8h-source.html +201/−0
- libnoise/noise/doc/html/curve.png binary
- libnoise/noise/doc/html/curve_8h-source.html +218/−0
- libnoise/noise/doc/html/cylinder_8h-source.html +195/−0
- libnoise/noise/doc/html/cylinders_8h-source.html +198/−0
- libnoise/noise/doc/html/dir_000000.html +157/−0
- libnoise/noise/doc/html/dir_000001.html +246/−0
- libnoise/noise/doc/html/dir_000002.html +146/−0
- libnoise/noise/doc/html/dir_000003.html +132/−0
- libnoise/noise/doc/html/displace_8h-source.html +232/−0
- libnoise/noise/doc/html/doxygen.css +249/−0
- libnoise/noise/doc/html/doxygen.png binary
- libnoise/noise/doc/html/exception_8h-source.html +175/−0
- libnoise/noise/doc/html/exponent_8h-source.html +198/−0
- libnoise/noise/doc/html/files.html +167/−0
- libnoise/noise/doc/html/functions.html +327/−0
- libnoise/noise/doc/html/functions_func.html +276/−0
- libnoise/noise/doc/html/functions_vars.html +181/−0
- libnoise/noise/doc/html/group__combinermodules.html +144/−0
- libnoise/noise/doc/html/group__generatormodules.html +258/−0
- libnoise/noise/doc/html/group__libnoise.html +1093/−0
- libnoise/noise/doc/html/group__miscmodules.html +132/−0
- libnoise/noise/doc/html/group__models.html +141/−0
- libnoise/noise/doc/html/group__modifiermodules.html +171/−0
- libnoise/noise/doc/html/group__modules.html +145/−0
- libnoise/noise/doc/html/group__selectormodules.html +148/−0
- libnoise/noise/doc/html/group__transformermodules.html +197/−0
- libnoise/noise/doc/html/hierarchy.html +165/−0
- libnoise/noise/doc/html/index.html +136/−0
- libnoise/noise/doc/html/interp_8h-source.html +184/−0
- libnoise/noise/doc/html/invert_8h-source.html +182/−0
- libnoise/noise/doc/html/latlon_8h-source.html +160/−0
- libnoise/noise/doc/html/libnoise.png binary
- libnoise/noise/doc/html/line_8h-source.html +230/−0
- libnoise/noise/doc/html/mathconsts_8h-source.html +168/−0
- libnoise/noise/doc/html/max_8h-source.html +182/−0
- libnoise/noise/doc/html/min_8h-source.html +182/−0
- libnoise/noise/doc/html/misc_8h-source.html +186/−0
- libnoise/noise/doc/html/model_8h-source.html +153/−0
- libnoise/noise/doc/html/modelcylinder.png binary
- libnoise/noise/doc/html/modelsphere.png binary
- libnoise/noise/doc/html/module_8h-source.html +177/−0
- libnoise/noise/doc/html/moduleabs.png binary
- libnoise/noise/doc/html/moduleadd.png binary
- libnoise/noise/doc/html/modulebase_8h-source.html +214/−0
- libnoise/noise/doc/html/modulebillow.png binary
- libnoise/noise/doc/html/moduleblend.png binary
- libnoise/noise/doc/html/modulecheckerboard.png binary
- libnoise/noise/doc/html/moduleclamp.png binary
- libnoise/noise/doc/html/moduleconst.png binary
- libnoise/noise/doc/html/modulecurve.png binary
- libnoise/noise/doc/html/modulecylinders.png binary
- libnoise/noise/doc/html/moduledisplace.png binary
- libnoise/noise/doc/html/moduleexponent.png binary
- libnoise/noise/doc/html/moduleinvert.png binary
- libnoise/noise/doc/html/modulemax.png binary
- libnoise/noise/doc/html/modulemin.png binary
- libnoise/noise/doc/html/modulemultiply.png binary
- libnoise/noise/doc/html/moduleperlin.png binary
- libnoise/noise/doc/html/modulepower.png binary
- libnoise/noise/doc/html/moduleridgedmulti.png binary
- libnoise/noise/doc/html/modulerotatepoint.png binary
- libnoise/noise/doc/html/modules.html +135/−0
- libnoise/noise/doc/html/modulescalebias.png binary
- libnoise/noise/doc/html/modulescalepoint.png binary
- libnoise/noise/doc/html/moduleselect.png binary
- libnoise/noise/doc/html/modulespheres.png binary
- libnoise/noise/doc/html/moduleterrace.png binary
- libnoise/noise/doc/html/moduletranslatepoint.png binary
- libnoise/noise/doc/html/moduleturbulence.png binary
- libnoise/noise/doc/html/modulevoronoi.png binary
- libnoise/noise/doc/html/multiply_8h-source.html +182/−0
- libnoise/noise/doc/html/noise_8h-source.html +153/−0
- libnoise/noise/doc/html/noisegen_8h-source.html +193/−0
- libnoise/noise/doc/html/perlin_8h-source.html +273/−0
- libnoise/noise/doc/html/plane_8h-source.html +191/−0
- libnoise/noise/doc/html/power_8h-source.html +181/−0
- libnoise/noise/doc/html/resource_8h-source.html +137/−0
- libnoise/noise/doc/html/ridgedmulti_8h-source.html +264/−0
- libnoise/noise/doc/html/rotatepoint_8h-source.html +246/−0
- libnoise/noise/doc/html/scalebias_8h-source.html +212/−0
- libnoise/noise/doc/html/scalepoint_8h-source.html +240/−0
- libnoise/noise/doc/html/select_8h-source.html +229/−0
- libnoise/noise/doc/html/sphere_8h-source.html +193/−0
- libnoise/noise/doc/html/spheres_8h-source.html +198/−0
- libnoise/noise/doc/html/structnoise_1_1module_1_1ControlPoint-members.html +123/−0
- libnoise/noise/doc/html/structnoise_1_1module_1_1ControlPoint.html +144/−0
- libnoise/noise/doc/html/terrace.png binary
- libnoise/noise/doc/html/terrace_8h-source.html +222/−0
- libnoise/noise/doc/html/translatepoint_8h-source.html +241/−0
- libnoise/noise/doc/html/turbulence_8h-source.html +237/−0
- libnoise/noise/doc/html/vectortable_8h-source.html +412/−0
- libnoise/noise/doc/html/voronoi_8h-source.html +238/−0
- libnoise/noise/doc/htmldata/background.png binary
- libnoise/noise/doc/htmldata/doxygen.css +249/−0
- libnoise/noise/doc/htmldata/libnoise.png binary
- libnoise/noise/doc/htmldata/templatefooter.html +19/−0
- libnoise/noise/doc/htmldata/templateheader.html +99/−0
- libnoise/noise/doc/img/curve.png binary
- libnoise/noise/doc/img/gradientcolor.png binary
- libnoise/noise/doc/img/modelcylinder.png binary
- libnoise/noise/doc/img/modelsphere.png binary
- libnoise/noise/doc/img/moduleabs.png binary
- libnoise/noise/doc/img/moduleadd.png binary
- libnoise/noise/doc/img/modulebillow.png binary
- libnoise/noise/doc/img/moduleblend.png binary
- libnoise/noise/doc/img/modulecheckerboard.png binary
- libnoise/noise/doc/img/moduleclamp.png binary
- libnoise/noise/doc/img/moduleconst.png binary
- libnoise/noise/doc/img/modulecurve.png binary
- libnoise/noise/doc/img/modulecylinders.png binary
- libnoise/noise/doc/img/moduledisplace.png binary
- libnoise/noise/doc/img/moduleexponent.png binary
- libnoise/noise/doc/img/moduleinvert.png binary
- libnoise/noise/doc/img/modulemax.png binary
- libnoise/noise/doc/img/modulemin.png binary
- libnoise/noise/doc/img/modulemultiply.png binary
- libnoise/noise/doc/img/moduleperlin.png binary
- libnoise/noise/doc/img/modulepower.png binary
- libnoise/noise/doc/img/moduleridgedmulti.png binary
- libnoise/noise/doc/img/modulerotatepoint.png binary
- libnoise/noise/doc/img/modulescalebias.png binary
- libnoise/noise/doc/img/modulescalepoint.png binary
- libnoise/noise/doc/img/moduleselect.png binary
- libnoise/noise/doc/img/modulespheres.png binary
- libnoise/noise/doc/img/moduleterrace.png binary
- libnoise/noise/doc/img/moduletranslatepoint.png binary
- libnoise/noise/doc/img/moduleturbulence.png binary
- libnoise/noise/doc/img/modulevoronoi.png binary
- libnoise/noise/doc/img/terrace.png binary
- libnoise/noise/doc/readme.txt +15/−0
- libnoise/noise/include/Makefile +14/−0
- libnoise/noise/lib/Makefile +8/−0
- libnoise/noise/libnoise.dsp +432/−0
- libnoise/noise/libnoise.dsw +29/−0
- libnoise/noise/libnoise.ncb too large to diff
- libnoise/noise/libnoise.opt binary
- libnoise/noise/libnoise.plg +136/−0
- libnoise/noise/noise.aps binary
- libnoise/noise/src/Makefile +56/−0
- libnoise/noise/src/Sources +80/−0
- libnoise/noise/src/basictypes.h +60/−0
- libnoise/noise/src/exception.h +74/−0
- libnoise/noise/src/interp.h +112/−0
- libnoise/noise/src/latlon.cpp +34/−0
- libnoise/noise/src/latlon.h +52/−0
- libnoise/noise/src/mathconsts.h +54/−0
- libnoise/noise/src/misc.h +97/−0
- libnoise/noise/src/model/cylinder.cpp +47/−0
- libnoise/noise/src/model/cylinder.h +131/−0
- libnoise/noise/src/model/line.cpp +65/−0
- libnoise/noise/src/model/line.h +198/−0
- libnoise/noise/src/model/model.h +31/−0
- libnoise/noise/src/model/plane.cpp +43/−0
- libnoise/noise/src/model/plane.h +121/−0
- libnoise/noise/src/model/sphere.cpp +46/−0
- libnoise/noise/src/model/sphere.h +131/−0
- libnoise/noise/src/module/.abs.cpp.swp binary
- libnoise/noise/src/module/abs.cpp +37/−0
- libnoise/noise/src/module/abs.h +76/−0
- libnoise/noise/src/module/add.cpp +39/−0
- libnoise/noise/src/module/add.h +77/−0
- libnoise/noise/src/module/billow.cpp +74/−0
- libnoise/noise/src/module/billow.h +277/−0
- libnoise/noise/src/module/blend.cpp +43/−0
- libnoise/noise/src/module/blend.h +144/−0
- libnoise/noise/src/module/cache.cpp +45/−0
- libnoise/noise/src/module/cache.h +118/−0
- libnoise/noise/src/module/checkerboard.cpp +38/−0
- libnoise/noise/src/module/checkerboard.h +81/−0
- libnoise/noise/src/module/clamp.cpp +54/−0
- libnoise/noise/src/module/clamp.h +152/−0
- libnoise/noise/src/module/const.cpp +31/−0
- libnoise/noise/src/module/const.h +111/−0
- libnoise/noise/src/module/curve.cpp +143/−0
- libnoise/noise/src/module/curve.h +197/−0
- libnoise/noise/src/module/cylinders.cpp +44/−0
- libnoise/noise/src/module/cylinders.h +129/−0
- libnoise/noise/src/module/displace.cpp +48/−0
- libnoise/noise/src/module/displace.h +259/−0
- libnoise/noise/src/module/exponent.cpp +39/−0
- libnoise/noise/src/module/exponent.h +119/−0
- libnoise/noise/src/module/invert.cpp +37/−0
- libnoise/noise/src/module/invert.h +75/−0
- libnoise/noise/src/module/max.cpp +41/−0
- libnoise/noise/src/module/max.h +76/−0
- libnoise/noise/src/module/min.cpp +41/−0
- libnoise/noise/src/module/min.h +76/−0
- libnoise/noise/src/module/module.h +55/−0
- libnoise/noise/src/module/modulebase.cpp +46/−0
- libnoise/noise/src/module/modulebase.h +366/−0
- libnoise/noise/src/module/multiply.cpp +39/−0
- libnoise/noise/src/module/multiply.h +76/−0
- libnoise/noise/src/module/perlin.cpp +72/−0
- libnoise/noise/src/module/perlin.h +359/−0
- libnoise/noise/src/module/power.cpp +38/−0
- libnoise/noise/src/module/power.h +80/−0
- libnoise/noise/src/module/ridgedmulti.cpp +114/−0
- libnoise/noise/src/module/ridgedmulti.h +313/−0
- libnoise/noise/src/module/rotatepoint.cpp +68/−0
- libnoise/noise/src/module/rotatepoint.h +233/−0
- libnoise/noise/src/module/scalebias.cpp +39/−0
- libnoise/noise/src/module/scalebias.h +151/−0
- libnoise/noise/src/module/scalepoint.cpp +41/−0
- libnoise/noise/src/module/scalepoint.h +212/−0
- libnoise/noise/src/module/select.cpp +109/−0
- libnoise/noise/src/module/select.h +267/−0
- libnoise/noise/src/module/spheres.cpp +45/−0
- libnoise/noise/src/module/spheres.h +127/−0
- libnoise/noise/src/module/terrace.cpp +160/−0
- libnoise/noise/src/module/terrace.h +242/−0
- libnoise/noise/src/module/translatepoint.cpp +41/−0
- libnoise/noise/src/module/translatepoint.h +223/−0
- libnoise/noise/src/module/turbulence.cpp +91/−0
- libnoise/noise/src/module/turbulence.h +269/−0
- libnoise/noise/src/module/voronoi.cpp +101/−0
- libnoise/noise/src/module/voronoi.h +246/−0
- libnoise/noise/src/noise.h +74/−0
- libnoise/noise/src/noisegen.cpp +220/−0
- libnoise/noise/src/noisegen.h +208/−0
- libnoise/noise/src/vectortable.h +290/−0
- libnoise/noise/src/win32/dllmain.cpp +28/−0
- libnoise/noise/src/win32/libnoise.def +154/−0
- libnoise/noise/src/win32/noise.aps binary
- libnoise/noise/src/win32/noise.rc +106/−0
- libnoise/noise/src/win32/resource.h +15/−0
- profiling/Main.hs +65/−0
- profiling/TexNoiseVect.hs +222/−0
- profiling/TexNoiseVectBackup.hs +254/−0
- test/Billow.hs +56/−0
- test/Main.hs +63/−0
- test/TexNoise.hs +156/−0
- test/TexNoiseVect.hs +258/−0
@@ -0,0 +1,1 @@+ref: refs/heads/master
@@ -0,0 +1,11 @@+[core]+ repositoryformatversion = 0+ filemode = true+ bare = false+ logallrefupdates = true+[remote "origin"]+ fetch = +refs/heads/*:refs/remotes/origin/*+ url = ssh://hugo_@hackological.com/~/reps/Development/Personal/Noise.git+[branch "master"]+ remote = origin+ merge = refs/heads/master
@@ -0,0 +1,1 @@+Unnamed repository; edit this file 'description' to name the repository.
@@ -0,0 +1,15 @@+#!/bin/sh+#+# An example hook script to check the commit log message taken by+# applypatch from an e-mail message.+#+# The hook should exit with non-zero status after issuing an+# appropriate message if it wants to stop the commit. The hook is+# allowed to edit the commit message file.+#+# To enable this hook, rename this file to "applypatch-msg".++. git-sh-setup+test -x "$GIT_DIR/hooks/commit-msg" &&+ exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"}+:
@@ -0,0 +1,24 @@+#!/bin/sh+#+# An example hook script to check the commit log message.+# Called by "git commit" with one argument, the name of the file+# that has the commit message. The hook should exit with non-zero+# status after issuing an appropriate message if it wants to stop the+# commit. The hook is allowed to edit the commit message file.+#+# To enable this hook, rename this file to "commit-msg".++# Uncomment the below to add a Signed-off-by line to the message.+# Doing this in a hook is a bad idea in general, but the prepare-commit-msg+# hook is more suited to it.+#+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"++# This example catches duplicate Signed-off-by lines.++test "" = "$(grep '^Signed-off-by: ' "$1" |+ sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {+ echo >&2 Duplicate Signed-off-by lines.+ exit 1+}
@@ -0,0 +1,8 @@+#!/bin/sh+#+# An example hook script that is called after a successful+# commit is made.+#+# To enable this hook, rename this file to "post-commit".++: Nothing
@@ -0,0 +1,15 @@+#!/bin/sh+#+# An example hook script for the "post-receive" event.+#+# The "post-receive" script is run after receive-pack has accepted a pack+# and the repository has been updated. It is passed arguments in through+# stdin in the form+# <oldrev> <newrev> <refname>+# For example:+# aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master+#+# see contrib/hooks/ for a sample, or uncomment the next line and+# rename the file to "post-receive".++#. /usr/share/doc/git-core/contrib/hooks/post-receive-email
@@ -0,0 +1,8 @@+#!/bin/sh+#+# An example hook script to prepare a packed repository for use over+# dumb transports.+#+# To enable this hook, rename this file to "post-update".++exec git update-server-info
@@ -0,0 +1,14 @@+#!/bin/sh+#+# An example hook script to verify what is about to be committed+# by applypatch from an e-mail message.+#+# The hook should exit with non-zero status after issuing an+# appropriate message if it wants to stop the commit.+#+# To enable this hook, rename this file to "pre-applypatch".++. git-sh-setup+test -x "$GIT_DIR/hooks/pre-commit" &&+ exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"}+:
@@ -0,0 +1,46 @@+#!/bin/sh+#+# An example hook script to verify what is about to be committed.+# Called by "git commit" with no arguments. The hook should+# exit with non-zero status after issuing an appropriate message if+# it wants to stop the commit.+#+# To enable this hook, rename this file to "pre-commit".++if git rev-parse --verify HEAD >/dev/null 2>&1+then+ against=HEAD+else+ # Initial commit: diff against an empty tree object+ against=4b825dc642cb6eb9a060e54bf8d69288fbee4904+fi++# If you want to allow non-ascii filenames set this variable to true.+allownonascii=$(git config hooks.allownonascii)++# Cross platform projects tend to avoid non-ascii filenames; prevent+# them from being added to the repository. We exploit the fact that the+# printable range starts at the space character and ends with tilde.+if [ "$allownonascii" != "true" ] &&+ # Note that the use of brackets around a tr range is ok here, (it's+ # even required, for portability to Solaris 10's /usr/bin/tr), since+ # the square bracket bytes happen to fall in the designated range.+ test "$(git diff --cached --name-only --diff-filter=A -z $against |+ LC_ALL=C tr -d '[ -~]\0')"+then+ echo "Error: Attempt to add a non-ascii file name."+ echo+ echo "This can cause problems if you want to work"+ echo "with people on other platforms."+ echo+ echo "To be portable it is advisable to rename the file ..."+ echo+ echo "If you know what you are doing you can disable this"+ echo "check using:"+ echo+ echo " git config hooks.allownonascii true"+ echo+ exit 1+fi++exec git diff-index --check --cached $against --
@@ -0,0 +1,169 @@+#!/bin/sh+#+# Copyright (c) 2006, 2008 Junio C Hamano+#+# The "pre-rebase" hook is run just before "git rebase" starts doing+# its job, and can prevent the command from running by exiting with+# non-zero status.+#+# The hook is called with the following parameters:+#+# $1 -- the upstream the series was forked from.+# $2 -- the branch being rebased (or empty when rebasing the current branch).+#+# This sample shows how to prevent topic branches that are already+# merged to 'next' branch from getting rebased, because allowing it+# would result in rebasing already published history.++publish=next+basebranch="$1"+if test "$#" = 2+then+ topic="refs/heads/$2"+else+ topic=`git symbolic-ref HEAD` ||+ exit 0 ;# we do not interrupt rebasing detached HEAD+fi++case "$topic" in+refs/heads/??/*)+ ;;+*)+ exit 0 ;# we do not interrupt others.+ ;;+esac++# Now we are dealing with a topic branch being rebased+# on top of master. Is it OK to rebase it?++# Does the topic really exist?+git show-ref -q "$topic" || {+ echo >&2 "No such branch $topic"+ exit 1+}++# Is topic fully merged to master?+not_in_master=`git rev-list --pretty=oneline ^master "$topic"`+if test -z "$not_in_master"+then+ echo >&2 "$topic is fully merged to master; better remove it."+ exit 1 ;# we could allow it, but there is no point.+fi++# Is topic ever merged to next? If so you should not be rebasing it.+only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`+only_next_2=`git rev-list ^master ${publish} | sort`+if test "$only_next_1" = "$only_next_2"+then+ not_in_topic=`git rev-list "^$topic" master`+ if test -z "$not_in_topic"+ then+ echo >&2 "$topic is already up-to-date with master"+ exit 1 ;# we could allow it, but there is no point.+ else+ exit 0+ fi+else+ not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`+ /usr/bin/perl -e '+ my $topic = $ARGV[0];+ my $msg = "* $topic has commits already merged to public branch:\n";+ my (%not_in_next) = map {+ /^([0-9a-f]+) /;+ ($1 => 1);+ } split(/\n/, $ARGV[1]);+ for my $elem (map {+ /^([0-9a-f]+) (.*)$/;+ [$1 => $2];+ } split(/\n/, $ARGV[2])) {+ if (!exists $not_in_next{$elem->[0]}) {+ if ($msg) {+ print STDERR $msg;+ undef $msg;+ }+ print STDERR " $elem->[1]\n";+ }+ }+ ' "$topic" "$not_in_next" "$not_in_master"+ exit 1+fi++exit 0++################################################################++This sample hook safeguards topic branches that have been+published from being rewound.++The workflow assumed here is:++ * Once a topic branch forks from "master", "master" is never+ merged into it again (either directly or indirectly).++ * Once a topic branch is fully cooked and merged into "master",+ it is deleted. If you need to build on top of it to correct+ earlier mistakes, a new topic branch is created by forking at+ the tip of the "master". This is not strictly necessary, but+ it makes it easier to keep your history simple.++ * Whenever you need to test or publish your changes to topic+ branches, merge them into "next" branch.++The script, being an example, hardcodes the publish branch name+to be "next", but it is trivial to make it configurable via+$GIT_DIR/config mechanism.++With this workflow, you would want to know:++(1) ... if a topic branch has ever been merged to "next". Young+ topic branches can have stupid mistakes you would rather+ clean up before publishing, and things that have not been+ merged into other branches can be easily rebased without+ affecting other people. But once it is published, you would+ not want to rewind it.++(2) ... if a topic branch has been fully merged to "master".+ Then you can delete it. More importantly, you should not+ build on top of it -- other people may already want to+ change things related to the topic as patches against your+ "master", so if you need further changes, it is better to+ fork the topic (perhaps with the same name) afresh from the+ tip of "master".++Let's look at this example:++ o---o---o---o---o---o---o---o---o---o "next"+ / / / /+ / a---a---b A / /+ / / / /+ / / c---c---c---c B /+ / / / \ /+ / / / b---b C \ /+ / / / / \ /+ ---o---o---o---o---o---o---o---o---o---o---o "master"+++A, B and C are topic branches.++ * A has one fix since it was merged up to "next".++ * B has finished. It has been fully merged up to "master" and "next",+ and is ready to be deleted.++ * C has not merged to "next" at all.++We would want to allow C to be rebased, refuse A, and encourage+B to be deleted.++To compute (1):++ git rev-list ^master ^topic next+ git rev-list ^master next++ if these match, topic has not merged in next at all.++To compute (2):++ git rev-list master..topic++ if this is empty, it is fully merged to "master".
@@ -0,0 +1,36 @@+#!/bin/sh+#+# An example hook script to prepare the commit log message.+# Called by "git commit" with the name of the file that has the+# commit message, followed by the description of the commit+# message's source. The hook's purpose is to edit the commit+# message file. If the hook fails with a non-zero status,+# the commit is aborted.+#+# To enable this hook, rename this file to "prepare-commit-msg".++# This hook includes three examples. The first comments out the+# "Conflicts:" part of a merge commit.+#+# The second includes the output of "git diff --name-status -r"+# into the message, just before the "git status" output. It is+# commented because it doesn't cope with --amend or with squashed+# commits.+#+# The third example adds a Signed-off-by line to the message, that can+# still be edited. This is rarely a good idea.++case "$2,$3" in+ merge,)+ /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;;++# ,|template,)+# /usr/bin/perl -i.bak -pe '+# print "\n" . `git diff --cached --name-status -r`+# if /^#/ && $first++ == 0' "$1" ;;++ *) ;;+esac++# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
@@ -0,0 +1,128 @@+#!/bin/sh+#+# An example hook script to blocks unannotated tags from entering.+# Called by "git receive-pack" with arguments: refname sha1-old sha1-new+#+# To enable this hook, rename this file to "update".+#+# Config+# ------+# hooks.allowunannotated+# This boolean sets whether unannotated tags will be allowed into the+# repository. By default they won't be.+# hooks.allowdeletetag+# This boolean sets whether deleting tags will be allowed in the+# repository. By default they won't be.+# hooks.allowmodifytag+# This boolean sets whether a tag may be modified after creation. By default+# it won't be.+# hooks.allowdeletebranch+# This boolean sets whether deleting branches will be allowed in the+# repository. By default they won't be.+# hooks.denycreatebranch+# This boolean sets whether remotely creating branches will be denied+# in the repository. By default this is allowed.+#++# --- Command line+refname="$1"+oldrev="$2"+newrev="$3"++# --- Safety check+if [ -z "$GIT_DIR" ]; then+ echo "Don't run this script from the command line." >&2+ echo " (if you want, you could supply GIT_DIR then run" >&2+ echo " $0 <ref> <oldrev> <newrev>)" >&2+ exit 1+fi++if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then+ echo "Usage: $0 <ref> <oldrev> <newrev>" >&2+ exit 1+fi++# --- Config+allowunannotated=$(git config --bool hooks.allowunannotated)+allowdeletebranch=$(git config --bool hooks.allowdeletebranch)+denycreatebranch=$(git config --bool hooks.denycreatebranch)+allowdeletetag=$(git config --bool hooks.allowdeletetag)+allowmodifytag=$(git config --bool hooks.allowmodifytag)++# check for no description+projectdesc=$(sed -e '1q' "$GIT_DIR/description")+case "$projectdesc" in+"Unnamed repository"* | "")+ echo "*** Project description file hasn't been set" >&2+ exit 1+ ;;+esac++# --- Check types+# if $newrev is 0000...0000, it's a commit to delete a ref.+zero="0000000000000000000000000000000000000000"+if [ "$newrev" = "$zero" ]; then+ newrev_type=delete+else+ newrev_type=$(git cat-file -t $newrev)+fi++case "$refname","$newrev_type" in+ refs/tags/*,commit)+ # un-annotated tag+ short_refname=${refname##refs/tags/}+ if [ "$allowunannotated" != "true" ]; then+ echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2+ echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2+ exit 1+ fi+ ;;+ refs/tags/*,delete)+ # delete tag+ if [ "$allowdeletetag" != "true" ]; then+ echo "*** Deleting a tag is not allowed in this repository" >&2+ exit 1+ fi+ ;;+ refs/tags/*,tag)+ # annotated tag+ if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1+ then+ echo "*** Tag '$refname' already exists." >&2+ echo "*** Modifying a tag is not allowed in this repository." >&2+ exit 1+ fi+ ;;+ refs/heads/*,commit)+ # branch+ if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then+ echo "*** Creating a branch is not allowed in this repository" >&2+ exit 1+ fi+ ;;+ refs/heads/*,delete)+ # delete branch+ if [ "$allowdeletebranch" != "true" ]; then+ echo "*** Deleting a branch is not allowed in this repository" >&2+ exit 1+ fi+ ;;+ refs/remotes/*,commit)+ # tracking branch+ ;;+ refs/remotes/*,delete)+ # delete tracking branch+ if [ "$allowdeletebranch" != "true" ]; then+ echo "*** Deleting a tracking branch is not allowed in this repository" >&2+ exit 1+ fi+ ;;+ *)+ # Anything else (is there anything else?)+ echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2+ exit 1+ ;;+esac++# --- Finished+exit 0
binary file changed (absent → 43664 bytes)
@@ -0,0 +1,6 @@+# git ls-files --others --exclude-from=.git/info/exclude+# Lines that start with '#' are comments.+# For a project mostly in C, the following would be a good set of+# exclude patterns (uncomment them if you want to use them):+# *.[oa]+# *~
@@ -0,0 +1,1 @@+0000000000000000000000000000000000000000 cc472f3f3aa409c547af2ad087ac059824d9a917 hugo <hugo@ebenezer.localdomain> 1301672265 +0100 clone: from ssh://hugo_@hackological.com/~/reps/Development/Personal/Noise.git
@@ -0,0 +1,1 @@+0000000000000000000000000000000000000000 cc472f3f3aa409c547af2ad087ac059824d9a917 hugo <hugo@ebenezer.localdomain> 1301672265 +0100 clone: from ssh://hugo_@hackological.com/~/reps/Development/Personal/Noise.git
binary file changed (absent → 11908 bytes)
binary file changed (absent → 1258258 bytes)
@@ -0,0 +1,2 @@+# pack-refs with: peeled +cc472f3f3aa409c547af2ad087ac059824d9a917 refs/remotes/origin/master
@@ -0,0 +1,1 @@+cc472f3f3aa409c547af2ad087ac059824d9a917
@@ -0,0 +1,1 @@+ref: refs/remotes/origin/master
@@ -0,0 +1,80 @@+Fri Oct 16 10:18:31 EDT 2009 paul@thev.net+ * make linux support generic to *nix, and bump version to 0.4.2++Wed Sep 16 14:00:09 EDT 2009 paul@thev.net+ * change CC option to fit Snow Leopard++Wed Aug 12 20:53:18 EDT 2009 paul@thev.net+ * bugfix for the dynamic flag; bump version to 0.4.1 for release.++Wed Aug 12 15:53:09 EDT 2009 paul@thev.net+ * update README.txt++Wed Aug 12 15:52:38 EDT 2009 paul@thev.net+ * addition to Work around GHC FFI bug 2594 only in GHC < 6.10++Sun Aug 2 08:02:16 EDT 2009 paul@thev.net+ * remove use of Int32 and make it compatible with OpenGL 2.3.0.0++Sun Jun 7 00:10:07 EDT 2009 brian@lorf.org+ * Work around GHC FFI bug 2594 only in GHC < 6.10++Sat Jun 6 03:03:14 EDT 2009 brian@lorf.org+ * Whitespace-only change to LICENSE.++Sat Jun 6 03:01:48 EDT 2009 brian@lorf.org+ * hlint cleanliness, Haddock comment improvements.++Sat Jun 6 01:37:10 EDT 2009 brian@lorf.org+ * Made small improvements to GLFW.cabal++Sat Jun 6 01:10:19 EDT 2009 brian@lorf.org+ * Made small improvements to Setup.hs++Wed Jun 3 09:41:31 EDT 2009 paul@thev.net+ * cabal related adjustments+ 1. adjust to work properly with latest cabal.+ 2. add -mach=apple as a cc-option for OS X in order not to break GHC 6.10.2.+ 3. add a "dynamic" flag for Linux to link to GLFW dynamic libs already in system.++Tue Dec 2 22:46:37 EST 2008 brianchina60221@gmail.com+ * joystick-related cleanup++Mon Nov 3 18:03:56 EST 2008 shahn@cs.tu-berlin.de+ * add derived instance for Ord for Key and SpecialKey++Sat Nov 1 20:50:32 EDT 2008 shahn@cs.tu-berlin.de+ * fix 64-bug for mousePosCallback (with dirty hack)++Mon Oct 27 18:41:18 EDT 2008 brianchina60221@gmail.com+ * openWindow fixes++Thu Oct 2 06:04:13 EDT 2008 brianchina60221@gmail.com+ * marking more foreign imports safe++Thu Oct 2 03:26:39 EDT 2008 brianchina60221@gmail.com+ * 'deteced -> detected'++Thu Oct 2 03:25:35 EDT 2008 brianchina60221@gmail.com+ * some foreign imports cannot be marked unsafe++Tue Sep 30 14:25:57 EDT 2008 brianchina60221@gmail.com+ * miscellaneous simplification++Tue Sep 30 09:26:03 EDT 2008 brianchina60221@gmail.com+ * removed unnecessary stuff from foreign imports, added "unsafe"s++Tue Sep 30 03:57:00 EDT 2008 brianchina60221@gmail.com+ * bump to 0.4, miscellaneous cleanup++Sat Sep 13 19:20:00 EDT 2008 shahn@cs.tu-berlin.de+ * workaround for correct mouse wheel values on 64-bit-machines++Sat Sep 6 15:17:51 EDT 2008 shahn@cs.tu-berlin.de+ * fix mousePosCallback bug on 64-bit machines++Thu Sep 4 21:30:11 EDT 2008 paul@thev.net+ * fix typo bug in disableSpecial, and improve some error msgs.++Wed Sep 3 22:39:52 EDT 2008 paul@thev.net+ * GLFW-0.3 init release
@@ -0,0 +1,20 @@+Copyright (c) 2010 Hugo Daniel H. O. Gomes <hugo.gomes@fcsh.unl.pt>++This software is provided 'as-is', without any express or implied+warranty. In no event will the authors be held liable for any damages+arising from the use of this software.++Permission is granted to anyone to use this software for any purpose,+including commercial applications, and to alter it and redistribute it+freely, subject to the following restrictions:++1. The origin of this software must not be misrepresented; you must not+ claim that you wrote the original software. If you use this software+ in a product, an acknowledgment in the product documentation would+ be appreciated but is not required.++2. Altered source versions must be plainly marked as such, and must not+ be misrepresented as being the original software.++3. This notice may not be removed or altered from any source+ distribution.
@@ -0,0 +1,16 @@+module Math.Noise (++ module Math.Noise.NoiseModule,+ module Math.Noise.NoiseGen,+ module Math.Noise.Interpolation,+ module Math.Noise.VectorTable,+ module Math.Noise.Modules.Perlin+)+ where++import Math.Noise.NoiseModule+import Math.Noise.NoiseGen+import Math.Noise.Interpolation+import Math.Noise.VectorTable+import Math.Noise.Modules.Perlin+
@@ -0,0 +1,38 @@+module Math.Noise.Interpolation where++{- | Performs cubic interpolation between two values bound between two other values+ - The alpha value should range from 0.0 to 1.0. + - If the alpha value is 0.0, this function returns the first value.+ - If the alpha vlaue is 1.0, this function returns the second value. + -}+cubic :: Double -> Double -> Double -> Double -> Double -> Double+cubic beforeFirstValue firstValue secondValue afterSecondValue alpha = + (p * alpha * alpha * alpha) + (q * alpha * alpha) + (r * alpha) + firstValue+ where p = (afterSecondValue - secondValue) - (beforeFirstValue - firstValue)+ q = (beforeFirstValue- firstValue) - p+ r = secondValue - beforeFirstValue++{- | Performs linear interpolation between two values.+ - The alpha value should range from 0.0 to 1.0.+ - If the alpha value is 0.0, this function returns the first value.+ - If the alpha value is 1.0, this function returns the second value.+ -}+linear :: Double -> Double -> Double -> Double +{-# INLINE linear #-}+linear firstValue secondValue alpha = + ((1.0 - alpha) * firstValue) + (alpha * secondValue)+++{- | Maps a value onto a cubic S-curve+ - the derivative of a cubic S-curve is zero at 0.0 and "value" at 1.0 -}+scurve3 :: Double -> Double+{-# INLINE scurve3 #-}+scurve3 value = value^3++{- | Maps a value onto a quintic S-curve.+ - The first derivative is zero at 0.0 and "value" at 1.0+ - The second derivative is zero at 0.0 and "value" at 1.0 -}+scurve5 :: Double -> Double+{-# INLINE scurve5 #-}+scurve5 value = (6.0 * value^5) - (15.0 * value^4) + (10.0 * value^3)+
binary file changed (absent → 12288 bytes)
@@ -0,0 +1,13 @@+module Math.Noise.Modules.Abs where+import Math.Noise.NoiseModule+import Control.Applicative++data Absolute = Absolute++absolute = Absolute++instance NoiseClass Absolute where+-- getSourceCount = const 1+ getNoiseValue Absolute [src] (x,y,z) = abs <$> getValue src (x,y,z)+ getNoiseValue a [] i = Nothing+ getNoiseValue _ _ _ = Nothing
@@ -0,0 +1,55 @@+{-# LANGUAGE ForeignFunctionInterface #-}+module Math.Noise.Modules.Billow where+import Math.Noise.NoiseGen+import Math.Noise.NoiseModule+import Foreign+import Foreign.C.Types++foreign import ccall "billow.h billowGen"+ c_billow :: CDouble -> CDouble -> CDouble + -> CDouble -> CDouble -> CInt + -> CDouble -> CInt + -> CDouble+++data Billow = Billow { billowFrequency+ , billowLacunarity+ , billowPersistence :: Double+ , billowOctaves+ , billowSeed + , billowMaxOctave :: Int+ }++billow :: Billow+billow = Billow { billowFrequency = 1.0+ , billowLacunarity = 2.0+ , billowPersistence = 0.5+ , billowOctaves = 6+ , billowSeed = 125+ , billowMaxOctave = 30+ }++instance NoiseClass Billow where+ getNoiseValue (Billow { billowFrequency = freq + , billowLacunarity = lac+ , billowOctaves = octaveCount+ , billowPersistence = pers+ , billowSeed = seed+ , billowMaxOctave = maxoctv+ } ) _ (x,y,z) =+ Just . (+) 0.5 . value $ + foldr octaveFunc (0.0, 1.0, ix, iy, iz) [0..octaveCount]+ where ix = x * freq+ iy = y * freq+ iz = z * freq+ fromDouble = fromInteger . floor+ value (v,_,_,_,_) = v+ signal sx sy sz octv = 2.0 * (abs $ gradientCoherentNoise3D sx sy sz (octaveSeed octv)) - 1.0+ octaveSeed octv = seed + octv+ octaveFunc curOctave (value, curPersistence, ox, oy, oz) =+ ( value + ( (signal ox oy oz curOctave) * curPersistence)+ , curPersistence * pers+ , ox * lac+ , oy * lac+ , oz * lac+ )
@@ -0,0 +1,61 @@+{-# LANGUAGE ForeignFunctionInterface #-}+module Math.Noise.Modules.Perlin where+import Data.Default+import Math.Noise.NoiseGen+import Math.Noise.NoiseModule+import Data.Bits+import Foreign+import Foreign.C.Types+-- import qualified Data.Vector.Unboxed as V++foreign import ccall "perlin.h perlinGen"+ c_perlin :: CDouble -> CDouble -> CDouble + -> CDouble -> CDouble -> CInt + -> CDouble -> CInt + -> CDouble+++data Perlin = Perlin { perlinFrequency :: Double + -- ^ Frequency of the first octave+ , perlinLacunarity :: Double + -- ^ Frequency multiplier between successive octaves+ , perlinOctaves :: Int + -- ^ Total number of octaves that generate the Perlin noise+ , perlinPersistence :: Double + -- ^ Persistence of the Perlin noise+ , perlinSeed :: Int+ } deriving (Show, Eq)++perlin :: Perlin +perlin = Perlin { perlinFrequency = 1.0+ , perlinLacunarity = 2.0+ , perlinOctaves = 6+ , perlinPersistence = 0.5+ , perlinSeed = 123 + }++-- TODO: make sure the number of octaves are within range...+-- getValue :: Perlin -> (Double, Double, Double) -> Double+instance NoiseClass Perlin where+ getNoiseValue (Perlin { perlinFrequency = freq+ , perlinLacunarity = lac+ , perlinOctaves = octaveCount+ , perlinPersistence = p+ , perlinSeed = seed } ) _ (x,y,z) = + Just $ realToFrac $ c_perlin (realToFrac x) (realToFrac y) (realToFrac z) + (realToFrac freq) (realToFrac lac) + (fromIntegral octaveCount) (realToFrac p) + (fromIntegral seed)++{-+ Just $ value $ V.foldr' octaveFunc (0.0, 1.0, x*freq, y*freq, z*freq) (V.generate (octaveCount-1) id)+ where value (v,_,_,_,_) = v+ signal sx sy sz octv = gradientCoherentNoise3D sx sy sz (seed + octv) + octaveFunc curOctave (value, curPersistence, ox, oy, oz) = + ( value + ( (signal ox oy oz (curOctave+1)) * curPersistence)+ , curPersistence * p+ , ox * lac+ , oy * lac+ , oz * lac+ )+-}
@@ -0,0 +1,19 @@+module Math.Noise.Modules.ScaleBias where+import Math.Noise.NoiseModule+import Control.Applicative++data ScaleBias = ScaleBias { bias+ , scale :: Double+ }++scalebias :: ScaleBias +scalebias = ScaleBias { bias = 0.0, scale = 1.0 }++instance NoiseClass ScaleBias where+-- getSourceCount = const 1+ getNoiseValue (ScaleBias {bias = bias, scale= scale}) [src] (x,y,z) =+ sbfunc <$> getValue src (x, y, z) + where sbfunc a = a * scale + bias++ getNoiseValue s [] (x,y,z) = Nothing+
@@ -0,0 +1,53 @@+module Math.Noise.Modules.Select where+import Math.Noise.NoiseGen+import Math.Noise.NoiseModule+import Math.Noise.Interpolation+import Data.Maybe+import Control.Applicative++data Select = Select { edgeFallOff + , lowerBound + , upperBound :: Double+ , controller :: NoiseModule+ }++select = Select { edgeFallOff = 0.0, lowerBound = -1.0, upperBound = 1.0, controller = one }+-- | Adjusts select values so that they are correct (i.e. lowerBound < upperBound, etcc...)+sanitizeSelect (Select { edgeFallOff = falloff, lowerBound = l, upperBound = u, controller = c } ) = Select { edgeFallOff = newFalloff, lowerBound = chooseLower, upperBound = chooseUpper, controller = c }+ where chooseLower | l > u = u+ | u > l = l+ | u == l = -1.0+ chooseUpper | l > u = l+ | u > l = u+ | u == l = 1.0+ -- make sure that the edge falloff curves do not overlap+ chooseFalloff f up low | f > ( (up - low) / 2) = (up - low) / 2+ | otherwise = f+ newFalloff = chooseFalloff falloff chooseUpper chooseLower++instance NoiseClass Select where+ sanitize = sanitizeSelect+ getNoiseValue (Select { edgeFallOff = falloff, lowerBound = low, upperBound = up, controller = ctrl}) [src1,src2] pt | up > low = selectFunc+ | otherwise = Nothing+ where controlVal = fromMaybe 0.0 $ getValue ctrl pt+ src1Val = getValue src1 pt+ src2Val = getValue src2 pt+ lowerCurve1 = low - falloff+ upperCurve1 = low + falloff+ alpha1 = scurve3 $ (controlVal - lowerCurve1) / (upperCurve1 - lowerCurve1)+ lowerCurve2 = up - falloff+ upperCurve2 = up + falloff+ alpha2 = scurve3 $ (controlVal - lowerCurve2) / (upperCurve2 - lowerCurve2)+ maybeLinear (Just a) (Just b) alph = Just $ linear a b alph+ maybeLinear _ _ alph = Nothing+ selectFunc | falloff > 0.0 = selectFallOff+ | otherwise = selectNoFallOff+ selectFallOff | controlVal < (low - falloff) = getValue src1 pt+ | controlVal < (low + falloff) = maybeLinear src1Val src2Val alpha1 + | controlVal < (up - falloff) = src2Val+ | controlVal < (up + falloff) = maybeLinear src2Val src1Val alpha2+ | otherwise = src1Val+ selectNoFallOff | controlVal < low || controlVal > up = src1Val + | otherwise = src2Val++ getNoiseValue s [] pt = Nothing
@@ -0,0 +1,13 @@+#include "billow.h"+#include "../noisegen.h"++__ATTR_PURE double perlinGen( double x + , double y+ , double z+ , double freq+ , double lac+ , int octaveCount+ , double persistence, int seed)+{++}
@@ -0,0 +1,44 @@+#include "perlin.h"+#include "../noisegen.h"++__ATTR_PURE double perlinGen( double x + , double y+ , double z+ , double freq+ , double lac+ , int octaveCount+ , double persistence, int seed)+{++ int currentOctv;+ double value = 0.0;+ double curPersistence = 1.0;+ double sigx = x*freq;+ double sigy = y*freq;+ double sigz = z*freq;++ for(currentOctv = 1; currentOctv <= octaveCount; currentOctv++)+ {+ value += gradientCoherentNoise(sigx, sigy, sigz, seed + currentOctv) * curPersistence;+ sigx = sigx * lac;+ sigy = sigy * lac;+ sigz = sigz * lac;+ curPersistence = curPersistence * persistence;+ } ++ return value;++/*+Just $ value $ V.foldr' octaveFunc (0.0, 1.0, x*freq, y*freq, z*freq) (V.generate (octaveCount-1) id)+ where value (v,_,_,_,_) = v+ signal sx sy sz octv = gradientCoherentNoise3D sx sy sz (seed + octv) q+ octaveFunc curOctave (value, curPersistence, ox, oy, oz) =+ ( value + ( (signal ox oy oz (curOctave+1)) * curPersistence)+ , curPersistence * p+ , ox * lac+ , oy * lac+ , oz * lac+ )+*/++}
@@ -0,0 +1,2 @@+#include "../common.h"+double perlinGen(double, double, double, double, double, int, double, int);
@@ -0,0 +1,156 @@+{-# LANGUAGE ForeignFunctionInterface #-}+module Math.Noise.NoiseGen where+import Data.Int+import Data.Bits+import Data.Array.Unboxed+import Math.Noise.Interpolation+import Math.Noise.VectorTable+import Data.Fixed (mod')+import qualified Data.Vector.Unboxed as Vector+import Foreign+import Foreign.C.Types++foreign import ccall "noisegen.h gradientCoherentNoise"+ c_gradientNoise :: CDouble -> CDouble -> CDouble -> CInt -> CDouble++-- CONSTANTS+--xNoiseGen :: Int32+xNoiseGen = 1619++--yNoiseGen :: Int32+yNoiseGen = 31337++--zNoiseGen :: Int32+zNoiseGen = 6971++--seedNoiseGen :: Int32+seedNoiseGen = 1013++shiftNoiseGen :: Int+shiftNoiseGen = 8 ++-- | Generates a gradient-coherent-noise value from the coordinates of a 3D value+{-+gradientCoherentNoise3D :: Double -> Double -> Double -> Int -> NoiseQuality -> Double+gradientCoherentNoise3D x y z seed quality = noiseCube x y z quality gradNoise+ where gradNoise i0 i1 i2 = gradientNoise3D x y z (toInt i0) (toInt i1) (toInt i2) seed+ toInt = fromIntegral . floor +-}++gradientCoherentNoise3D :: Double -> Double -> Double -> Int -> Double+gradientCoherentNoise3D x y z seed = realToFrac $ c_gradientNoise (realToFrac x) (realToFrac y) (realToFrac z) (fromIntegral seed)++{-+ where x0 = if x > 0.0 then floor x+ else round (x - 1)+ x1 = x0 + 1+ y0 = if y > 0.0 then floor y+ else round (y -1)+ y1 = y0 + 1+ z0 = if z > 1.0 then floor z+ else round (z - 1)+ z1 = z0 + 1++ (xs,ys,zs) = case quality of+ Fast -> (x - fromIntegral x0 + ,y - fromIntegral y0+ ,z - fromIntegral z0)+ Standard -> (scurve3 (x - fromIntegral x0)+ ,scurve3 (y - fromIntegral y0)+ ,scurve3 (z - fromIntegral z0) )+ Best -> (scurve5 (x - fromIntegral x0)+ ,scurve5 (y - fromIntegral y0)+ ,scurve5 (z - fromIntegral z0) )++ noiseFunc = gradientNoise3D x y z seed+ n0a = noiseFunc x0 y0 z0 + n1a = noiseFunc x1 y0 z0 + ix0a = linear n0a n1a xs+ n0b = noiseFunc x0 y1 z0 + n1b = noiseFunc x1 y1 z0 + ix1a = linear n0b n1b xs+ iy0 = linear ix0a ix1a ys+ n0c = noiseFunc x0 y0 z1 + n1c = noiseFunc x1 y0 z1 + ix0b = linear n0c n1c xs+ n0d = noiseFunc x0 y1 z1 + n1d = noiseFunc x1 y1 z1 + ix1b = linear n0d n1d xs+ iy1 = linear ix0b ix1b ys++ final = linear iy0 iy1 zs+-}++{-+ (a0,a1,b0,b1,c0,c1,d0,d1) = fastGradientNoise x y z seed x0 y0 z0+ ix0a = linear a0 a1 xs+ ix1a = linear b0 b1 xs+ iy0 = linear ix0a ix1a ys+ ix0b = linear c0 c1 xs+ ix1b = linear d0 d1 xs+ iy1 = linear ix0b ix1b ys+ final = linear iy0 iy1 zs+-}++++{- | Generates a gradient-noise value from the coordinates of a 3D input value and+the integer coordinates of a nearby 3D value -}+gradientNoise3D :: Double -> Double -> Double -> Int -> Int -> Int -> Int -> Double+gradientNoise3D !fx !fy !fz !seed ix iy iz = + (xvGrad * xvPoint) ++ (yvGrad * yvPoint) ++ (zvGrad * zvPoint) * 2.12+ where icalc = xNoiseGen * ix+ + yNoiseGen * iy+ + zNoiseGen * iz+ + seedNoiseGen * seed+ + index = shiftL ( (xor (fromIntegral icalc) (shiftR icalc shiftNoiseGen)) .&. 0xff) 2 -- gen some quick random shiznit++ xvGrad :: Double+ xvGrad = staticTable Vector.! index + yvGrad :: Double+ yvGrad = staticTable Vector.! (index + 1)+ zvGrad :: Double+ zvGrad = staticTable Vector.! (index + 2)++ xvPoint :: Double+ xvPoint = fx - (fromIntegral ix)+ yvPoint :: Double+ yvPoint = fy - (fromIntegral iy)+ zvPoint :: Double+ zvPoint = fz - (fromIntegral iz)++{-+intValueNoise3D :: Int -> Int -> Int -> Int -> Int+intValueNoise3D x y z seed = + fromIntegral $ (n * (n * n * 60493 + 19990303) + 1376312589) .&. 0x7fffffff+ where nx :: Int32+ nx = fromIntegral x+ ny :: Int32+ ny = fromIntegral y+ nz :: Int32+ nz = fromIntegral z+ nseed :: Int32+ nseed = fromIntegral seed+ baseVal = (xNoiseGen * nx+ + yNoiseGen * ny+ + zNoiseGen * nz+ + seedNoiseGen * nseed) .&. 0x7fffffff+ n = xor (shiftR baseVal 13) baseVal+++-- | Generates a value-coherent-noise value from the coordinates of a 3D input+valueCoherentNoise3D :: Double -> Double -> Double -> Int -> NoiseQuality -> Double+valueCoherentNoise3D x y z seed quality = noiseCube x y z quality valNoise+ where valNoise i0 i1 i2 = valueNoise3D (toInt i0) (toInt i1) (toInt i2) seed+ toInt = fromIntegral . floor +++-- | Generates a value-noise value from the coordinates of a 3D input value+valueNoise3D :: Int -> Int -> Int -> Int -> Double+valueNoise3D x y z seed = + let noiseCalc = (fromIntegral $ intValueNoise3D x y z seed) in+ 1.0 - ( noiseCalc / 1073741824.0 )+ -}
@@ -0,0 +1,62 @@+{-# LANGUAGE FlexibleInstances, GeneralizedNewtypeDeriving,+ ExistentialQuantification, MultiParamTypeClasses #-}+module Math.Noise.NoiseModule where+import Control.Applicative+import Data.Maybe+import Data.Typeable++class NoiseClass n where+ getNoiseValue :: n -> [NoiseModule] -> (Double, Double, Double) -> Maybe Double+ getValue :: n -> (Double, Double, Double) -> Maybe Double+ getValue n i = getNoiseValue n [] i+ gen :: n -> NoiseModule+ gen n = NoiseModule (sanitize n) []+ sanitize :: n -> n+ sanitize = id ++data NoiseModule = forall n. (NoiseClass n) => NoiseModule { noiseFunc :: n+ , sources :: [NoiseModule]+ }++instance NoiseClass NoiseModule where+ getNoiseValue (NoiseModule n srcs ) src2 (x, y, z) = getNoiseValue n (src2 ++ srcs) (x, y, z)+ gen = id++data ZeroNoise = ZeroNoise+instance NoiseClass ZeroNoise where+ getNoiseValue _ _ _ = Just 0.0++data OneNoise = OneNoise+instance NoiseClass OneNoise where+ getNoiseValue _ _ _ = Just 1.0++instance NoiseClass (Maybe a) where+ getNoiseValue _ _ _ = Nothing++zero :: NoiseModule+zero = NoiseModule { noiseFunc = ZeroNoise , sources = [] }++one :: NoiseModule+one = NoiseModule { noiseFunc = OneNoise, sources = [] }++isSourceOf :: (NoiseClass a, NoiseClass b) => a -> b -> NoiseModule +isSourceOf s1 n = NoiseModule { noiseFunc = n, sources = [gen s1] } ++andModule :: (NoiseClass a, NoiseClass b) => a -> b -> NoiseModule+andModule s1 s2 = NoiseModule Nothing [gen s1, gen s2]++areSourcesOf :: (NoiseClass a) => NoiseModule -> a -> NoiseModule+areSourcesOf mod n = setSrcs . gen $ n + where + setSrcs (NoiseModule f _) = NoiseModule f (fetchSrcs mod [])+ fetchSrcs :: NoiseModule -> [NoiseModule] -> [NoiseModule]+ fetchSrcs (NoiseModule nfunc [s1, s2] ) accum = fetchSrcs s1 (gen s2 : accum)+ fetchSrcs (NoiseModule nfunc []) accum = (gen nfunc) : accum++-- | creates a NoiseModule from a 1D function, the created module does not require sources +{-+generator1D :: (Double->Double) -> NoiseModule+generator1D f = +-}++
@@ -0,0 +1,52 @@+module Math.Noise.Test where +import Math.Noise.Modules.Perlin +import Math.Noise.Modules.ScaleBias +import Math.Noise.Modules.Abs +import Math.Noise.Modules.Billow +import Math.Noise.Modules.Select +import Math.Noise.NoiseModule + +test = getValue myNoise (-0.1, -0.5, 0.76) + +myNoise2 = perlin { perlinFrequency = 0.123 } `isSourceOf` scalebias { scale = 10.0 } `isSourceOf` absolute +myNoise = perlin `isSourceOf` scalebias { scale = 1.0 } `isSourceOf` absolute + +tNoise = perlin { perlinFrequency = 0.123 } `andModule` + billow { billowOctaves = 12 } `andModule` + myNoise `areSourcesOf` + select { upperBound = 0.7, lowerBound = 0.2 } + +{- +n1 `isSourceOf` n2 `isSourceOf` select `with` + + +n1 `isSourceOf` select `togetherWith` n2 + +(n1, n2) -> NoiseModule N [n1, n2] +(NoiseModule N [n1, n2], n3) -> NoiseModule N [NoiseModule N [n1, n2], n3] +(NoiseModule N [NoiseModule N [n1, n2], n3], n4) -> NoiseModule N [NoiseModule N [NoiseModule N [n1, n2], n3], n4] + + +[NoiseModule N [NoiseModule N [n1, n2], n3], n4] +areSourcesOf :: NoiseModule -> a -> NoiseModule +areSourcesOf mod n = NoiseModule n (getSrcs + where + fetchSrcs :: NoiseModule -> [NoiseModule] -> [NoiseModule] + fetchSrcs (NoiseModule nfunc [s1,s2] ) accum = + case nfunc of + NoiseModule Nothing srcs -> map ((flip fetchSrcs) accum) srcs + NoiseModule f [] -> (f:accum) + Nothing -> (fetchSrcs s1 []) : (fetchSrcs s2 []) : accum + + + +(n1, n2) -> NoiseModule N [NoiseModule N [NoiseModule n1 []] , NoiseModule n2 [] ] + (NoiseModule N [NoiseModule N [NoiseModule n1 []] , NoiseModule n2 [] ]) + + +(NoiseModule N [NoiseModule n1 [] , NoiseModule n2 [] ], n3) -> NoiseModule N [ NoiseModule (NoiseModule N [NoiseModule n1 [] , NoiseModule n2 [] ]) [], NoiseModule n3 [] ] + +NoiseModule N [ NoiseModule (NoiseModule N [ NoiseModule (NoiseModule N [NoiseModule n1 [] , NoiseModule n2 [] ]) [], NoiseModule n3 [] ]) [], NoiseModule n4 [] ] + + +-}
@@ -0,0 +1,327 @@+module Math.Noise.VectorTable where+import Data.Maybe +import Data.Array.Unboxed+import qualified Data.Vector.Unboxed as Vector++data NoiseVector = NoiseVector Double Double Double+ deriving (Show, Eq)+++{- | Generates a normalized vector based on four numbers on the range of [-1.0, 1.0]+ - This function uses the Cook (1957) method, and may reject pairs + -}+genNormalized :: (Double,Double,Double,Double) -> Maybe NoiseVector+genNormalized (x0,x1,x2,x3) | x0*x0 + x1*x1 + x2*x2 + x3*x3 >= 1.0 = Nothing+genNormalized (x0,x1,x2,x3) = Just $ NoiseVector x y z+ where x = 2.0 * (x1*x3 + x0*x2) / base+ y = 2.0 * (x2*x3 - x0*x1) / base+ z = (x0*x0 + x3*x3 - x1*x1 - x2*x2) / base+ base = x0*x0 + x1*x1 + x2*x2 + x3*x3++-- just a testing function...+isNormalized :: NoiseVector -> Double+isNormalized (NoiseVector x y z) = x*x + y*y + z*z++-- | Generates a uniform distribution of Double values on the range [-1.0, 1.0]+genUniformDistribution :: Int -> [Double]+genUniformDistribution parts =+ [-1.0, (-1.0 + step) .. 1.0]+ where step = 1.0 / (fromIntegral parts)++-- | Generates a uniform distribution that has at least n*4 values that won't be rejected by the vector generation function+getSuitableUniformDist :: Int -> Maybe [(Double, Double, Double, Double)]+getSuitableUniformDist n | rem n 4 /= 0 = Nothing+getSuitableUniformDist n | otherwise = Just $ aux n (vecNumbers n)+ where aux current lst | (length lst) == n = lst+ aux current lst | otherwise = aux (current + 4) (vecNumbers (current + 4) )+ vecNumbers ammount = filter rejectFunc $ (breakLst . genUniformDistribution) (ammount * 2)+ breakLst (a:b:c:d:es) = (a,b,c,d) : breakLst es+ breakLst _ = []+ rejectFunc (x0,x1,x2,x3) = not $ x0*x0 + x1*x1 + x2*x2 + x3*x3 >= 1.0 ++-- | Generates a list of uniformly distributed normalized vectors+genVectors :: Int -> Maybe [NoiseVector] +genVectors ammount = sequence $ map genNormalized $ fromMaybe [] $ getSuitableUniformDist ammount++-- | Creates a list of Doubles with 0.0 separating each set of 3 Doubles+toList :: [NoiseVector] -> [Double]+toList (v:vs) = ((\(NoiseVector x y z) -> [x,y,z,0.0]) v) ++ (toList vs)+toList [] = []++-- | Creates an immutable array from a list of Doubles+listTable :: [Double] -> UArray Int Double+listTable lst = listArray (0, length lst) lst++staticTable :: Vector.Vector Double+staticTable = Vector.fromList constList++-- | An immutable table of predefined vectors+staticTable2 :: UArray Int Double+staticTable2 = listArray (0, 256*4) constList++-- | A constant list of Doubles+constList :: [Double]+constList = [+ -0.763874, -0.596439, -0.246489, 0.0,+ 0.396055, 0.904518, -0.158073, 0.0,+ -0.499004, -0.8665, -0.0131631, 0.0,+ 0.468724, -0.824756, 0.316346, 0.0,+ 0.829598, 0.43195, 0.353816, 0.0,+ -0.454473, 0.629497, -0.630228, 0.0,+ -0.162349, -0.869962, -0.465628, 0.0,+ 0.932805, 0.253451, 0.256198, 0.0,+ -0.345419, 0.927299, -0.144227, 0.0,+ -0.715026, -0.293698, -0.634413, 0.0,+ -0.245997, 0.717467, -0.651711, 0.0,+ -0.967409, -0.250435, -0.037451, 0.0,+ 0.901729, 0.397108, -0.170852, 0.0,+ 0.892657, -0.0720622, -0.444938, 0.0,+ 0.0260084, -0.0361701, 0.999007, 0.0,+ 0.949107, -0.19486, 0.247439, 0.0,+ 0.471803, -0.807064, -0.355036, 0.0,+ 0.879737, 0.141845, 0.453809, 0.0,+ 0.570747, 0.696415, 0.435033, 0.0,+ -0.141751, -0.988233, -0.0574584, 0.0,+ -0.58219, -0.0303005, 0.812488, 0.0,+ -0.60922, 0.239482, -0.755975, 0.0,+ 0.299394, -0.197066, -0.933557, 0.0,+ -0.851615, -0.220702, -0.47544, 0.0,+ 0.848886, 0.341829, -0.403169, 0.0,+ -0.156129, -0.687241, 0.709453, 0.0,+ -0.665651, 0.626724, 0.405124, 0.0,+ 0.595914, -0.674582, 0.43569, 0.0,+ 0.171025, -0.509292, 0.843428, 0.0,+ 0.78605, 0.536414, -0.307222, 0.0,+ 0.18905, -0.791613, 0.581042, 0.0,+ -0.294916, 0.844994, 0.446105, 0.0,+ 0.342031, -0.58736, -0.7335, 0.0,+ 0.57155, 0.7869, 0.232635, 0.0,+ 0.885026, -0.408223, 0.223791, 0.0,+ -0.789518, 0.571645, 0.223347, 0.0,+ 0.774571, 0.31566, 0.548087, 0.0,+ -0.79695, -0.0433603, -0.602487, 0.0,+ -0.142425, -0.473249, -0.869339, 0.0,+ -0.0698838, 0.170442, 0.982886, 0.0,+ 0.687815, -0.484748, 0.540306, 0.0,+ 0.543703, -0.534446, -0.647112, 0.0,+ 0.97186, 0.184391, -0.146588, 0.0,+ 0.707084, 0.485713, -0.513921, 0.0,+ 0.942302, 0.331945, 0.043348, 0.0,+ 0.499084, 0.599922, 0.625307, 0.0,+ -0.289203, 0.211107, 0.9337, 0.0,+ 0.412433, -0.71667, -0.56239, 0.0,+ 0.87721, -0.082816, 0.47291, 0.0,+ -0.420685, -0.214278, 0.881538, 0.0,+ 0.752558, -0.0391579, 0.657361, 0.0,+ 0.0765725, -0.996789, 0.0234082, 0.0,+ -0.544312, -0.309435, -0.779727, 0.0,+ -0.455358, -0.415572, 0.787368, 0.0,+ -0.874586, 0.483746, 0.0330131, 0.0,+ 0.245172, -0.0838623, 0.965846, 0.0,+ 0.382293, -0.432813, 0.81641, 0.0,+ -0.287735, -0.905514, 0.311853, 0.0,+ -0.667704, 0.704955, -0.239186, 0.0,+ 0.717885, -0.464002, -0.518983, 0.0,+ 0.976342, -0.214895, 0.0240053, 0.0,+ -0.0733096, -0.921136, 0.382276, 0.0,+ -0.986284, 0.151224, -0.0661379, 0.0,+ -0.899319, -0.429671, 0.0812908, 0.0,+ 0.652102, -0.724625, 0.222893, 0.0,+ 0.203761, 0.458023, -0.865272, 0.0,+ -0.030396, 0.698724, -0.714745, 0.0,+ -0.460232, 0.839138, 0.289887, 0.0,+ -0.0898602, 0.837894, 0.538386, 0.0,+ -0.731595, 0.0793784, 0.677102, 0.0,+ -0.447236, -0.788397, 0.422386, 0.0,+ 0.186481, 0.645855, -0.740335, 0.0,+ -0.259006, 0.935463, 0.240467, 0.0,+ 0.445839, 0.819655, -0.359712, 0.0,+ 0.349962, 0.755022, -0.554499, 0.0,+ -0.997078, -0.0359577, 0.0673977, 0.0,+ -0.431163, -0.147516, -0.890133, 0.0,+ 0.299648, -0.63914, 0.708316, 0.0,+ 0.397043, 0.566526, -0.722084, 0.0,+ -0.502489, 0.438308, -0.745246, 0.0,+ 0.0687235, 0.354097, 0.93268, 0.0,+ -0.0476651, -0.462597, 0.885286, 0.0,+ -0.221934, 0.900739, -0.373383, 0.0,+ -0.956107, -0.225676, 0.186893, 0.0,+ -0.187627, 0.391487, -0.900852, 0.0,+ -0.224209, -0.315405, 0.92209, 0.0,+ -0.730807, -0.537068, 0.421283, 0.0,+ -0.0353135, -0.816748, 0.575913, 0.0,+ -0.941391, 0.176991, -0.287153, 0.0,+ -0.154174, 0.390458, 0.90762, 0.0,+ -0.283847, 0.533842, 0.796519, 0.0,+ -0.482737, -0.850448, 0.209052, 0.0,+ -0.649175, 0.477748, 0.591886, 0.0,+ 0.885373, -0.405387, -0.227543, 0.0,+ -0.147261, 0.181623, -0.972279, 0.0,+ 0.0959236, -0.115847, -0.988624, 0.0,+ -0.89724, -0.191348, 0.397928, 0.0,+ 0.903553, -0.428461, -0.00350461, 0.0,+ 0.849072, -0.295807, -0.437693, 0.0,+ 0.65551, 0.741754, -0.141804, 0.0,+ 0.61598, -0.178669, 0.767232, 0.0,+ 0.0112967, 0.932256, -0.361623, 0.0,+ -0.793031, 0.258012, 0.551845, 0.0,+ 0.421933, 0.454311, 0.784585, 0.0,+ -0.319993, 0.0401618, -0.946568, 0.0,+ -0.81571, 0.551307, -0.175151, 0.0,+ -0.377644, 0.00322313, 0.925945, 0.0,+ 0.129759, -0.666581, -0.734052, 0.0,+ 0.601901, -0.654237, -0.457919, 0.0,+ -0.927463, -0.0343576, -0.372334, 0.0,+ -0.438663, -0.868301, -0.231578, 0.0,+ -0.648845, -0.749138, -0.133387, 0.0,+ 0.507393, -0.588294, 0.629653, 0.0,+ 0.726958, 0.623665, 0.287358, 0.0,+ 0.411159, 0.367614, -0.834151, 0.0,+ 0.806333, 0.585117, -0.0864016, 0.0,+ 0.263935, -0.880876, 0.392932, 0.0,+ 0.421546, -0.201336, 0.884174, 0.0,+ -0.683198, -0.569557, -0.456996, 0.0,+ -0.117116, -0.0406654, -0.992285, 0.0,+ -0.643679, -0.109196, -0.757465, 0.0,+ -0.561559, -0.62989, 0.536554, 0.0,+ 0.0628422, 0.104677, -0.992519, 0.0,+ 0.480759, -0.2867, -0.828658, 0.0,+ -0.228559, -0.228965, -0.946222, 0.0,+ -0.10194, -0.65706, -0.746914, 0.0,+ 0.0689193, -0.678236, 0.731605, 0.0,+ 0.401019, -0.754026, 0.52022, 0.0,+ -0.742141, 0.547083, -0.387203, 0.0,+ -0.00210603, -0.796417, -0.604745, 0.0,+ 0.296725, -0.409909, -0.862513, 0.0,+ -0.260932, -0.798201, 0.542945, 0.0,+ -0.641628, 0.742379, 0.192838, 0.0,+ -0.186009, -0.101514, 0.97729, 0.0,+ 0.106711, -0.962067, 0.251079, 0.0,+ -0.743499, 0.30988, -0.592607, 0.0,+ -0.795853, -0.605066, -0.0226607, 0.0,+ -0.828661, -0.419471, -0.370628, 0.0,+ 0.0847218, -0.489815, -0.8677, 0.0,+ -0.381405, 0.788019, -0.483276, 0.0,+ 0.282042, -0.953394, 0.107205, 0.0,+ 0.530774, 0.847413, 0.0130696, 0.0,+ 0.0515397, 0.922524, 0.382484, 0.0,+ -0.631467, -0.709046, 0.313852, 0.0,+ 0.688248, 0.517273, 0.508668, 0.0,+ 0.646689, -0.333782, -0.685845, 0.0,+ -0.932528, -0.247532, -0.262906, 0.0,+ 0.630609, 0.68757, -0.359973, 0.0,+ 0.577805, -0.394189, 0.714673, 0.0,+ -0.887833, -0.437301, -0.14325, 0.0,+ 0.690982, 0.174003, 0.701617, 0.0,+ -0.866701, 0.0118182, 0.498689, 0.0,+ -0.482876, 0.727143, 0.487949, 0.0,+ -0.577567, 0.682593, -0.447752, 0.0,+ 0.373768, 0.0982991, 0.922299, 0.0,+ 0.170744, 0.964243, -0.202687, 0.0,+ 0.993654, -0.035791, -0.106632, 0.0,+ 0.587065, 0.4143, -0.695493, 0.0,+ -0.396509, 0.26509, -0.878924, 0.0,+ -0.0866853, 0.83553, -0.542563, 0.0,+ 0.923193, 0.133398, -0.360443, 0.0,+ 0.00379108, -0.258618, 0.965972, 0.0,+ 0.239144, 0.245154, -0.939526, 0.0,+ 0.758731, -0.555871, 0.33961, 0.0,+ 0.295355, 0.309513, 0.903862, 0.0,+ 0.0531222, -0.91003, -0.411124, 0.0,+ 0.270452, 0.0229439, -0.96246, 0.0,+ 0.563634, 0.0324352, 0.825387, 0.0,+ 0.156326, 0.147392, 0.976646, 0.0,+ -0.0410141, 0.981824, 0.185309, 0.0,+ -0.385562, -0.576343, -0.720535, 0.0,+ 0.388281, 0.904441, 0.176702, 0.0,+ 0.945561, -0.192859, -0.262146, 0.0,+ 0.844504, 0.520193, 0.127325, 0.0,+ 0.0330893, 0.999121, -0.0257505, 0.0,+ -0.592616, -0.482475, -0.644999, 0.0,+ 0.539471, 0.631024, -0.557476, 0.0,+ 0.655851, -0.027319, -0.754396, 0.0,+ 0.274465, 0.887659, 0.369772, 0.0,+ -0.123419, 0.975177, -0.183842, 0.0,+ -0.223429, 0.708045, 0.66989, 0.0,+ -0.908654, 0.196302, 0.368528, 0.0,+ -0.95759, -0.00863708, 0.288005, 0.0,+ 0.960535, 0.030592, 0.276472, 0.0,+ -0.413146, 0.907537, 0.0754161, 0.0,+ -0.847992, 0.350849, -0.397259, 0.0,+ 0.614736, 0.395841, 0.68221, 0.0,+ -0.503504, -0.666128, -0.550234, 0.0,+ -0.268833, -0.738524, -0.618314, 0.0,+ 0.792737, -0.60001, -0.107502, 0.0,+ -0.637582, 0.508144, -0.579032, 0.0,+ 0.750105, 0.282165, -0.598101, 0.0,+ -0.351199, -0.392294, -0.850155, 0.0,+ 0.250126, -0.960993, -0.118025, 0.0,+ -0.732341, 0.680909, -0.0063274, 0.0,+ -0.760674, -0.141009, 0.633634, 0.0,+ 0.222823, -0.304012, 0.926243, 0.0,+ 0.209178, 0.505671, 0.836984, 0.0,+ 0.757914, -0.56629, -0.323857, 0.0,+ -0.782926, -0.339196, 0.52151, 0.0,+ -0.462952, 0.585565, 0.665424, 0.0,+ 0.61879, 0.194119, -0.761194, 0.0,+ 0.741388, -0.276743, 0.611357, 0.0,+ 0.707571, 0.702621, 0.0752872, 0.0,+ 0.156562, 0.819977, 0.550569, 0.0,+ -0.793606, 0.440216, 0.42, 0.0,+ 0.234547, 0.885309, -0.401517, 0.0,+ 0.132598, 0.80115, -0.58359, 0.0,+ -0.377899, -0.639179, 0.669808, 0.0,+ -0.865993, -0.396465, 0.304748, 0.0,+ -0.624815, -0.44283, 0.643046, 0.0,+ -0.485705, 0.825614, -0.287146, 0.0,+ -0.971788, 0.175535, 0.157529, 0.0,+ -0.456027, 0.392629, 0.798675, 0.0,+ -0.0104443, 0.521623, -0.853112, 0.0,+ -0.660575, -0.74519, 0.091282, 0.0,+ -0.0157698, -0.307475, -0.951425, 0.0,+ -0.603467, -0.250192, 0.757121, 0.0,+ 0.506876, 0.25006, 0.824952, 0.0,+ 0.255404, 0.966794, 0.00884498, 0.0,+ 0.466764, -0.874228, -0.133625, 0.0,+ 0.475077, -0.0682351, -0.877295, 0.0,+ -0.224967, -0.938972, -0.260233, 0.0,+ -0.377929, -0.814757, -0.439705, 0.0,+ -0.305847, 0.542333, -0.782517, 0.0,+ 0.26658, -0.902905, -0.337191, 0.0,+ 0.0275773, 0.322158, -0.946284, 0.0,+ 0.0185422, 0.716349, 0.697496, 0.0,+ -0.20483, 0.978416, 0.0273371, 0.0,+ -0.898276, 0.373969, 0.230752, 0.0,+ -0.00909378, 0.546594, 0.837349, 0.0,+ 0.6602, -0.751089, 0.000959236, 0.0,+ 0.855301, -0.303056, 0.420259, 0.0,+ 0.797138, 0.0623013, -0.600574, 0.0,+ 0.48947, -0.866813, 0.0951509, 0.0,+ 0.251142, 0.674531, 0.694216, 0.0,+ -0.578422, -0.737373, -0.348867, 0.0,+ -0.254689, -0.514807, 0.818601, 0.0,+ 0.374972, 0.761612, 0.528529, 0.0,+ 0.640303, -0.734271, -0.225517, 0.0,+ -0.638076, 0.285527, 0.715075, 0.0,+ 0.772956, -0.15984, -0.613995, 0.0,+ 0.798217, -0.590628, 0.118356, 0.0,+ -0.986276, -0.0578337, -0.154644, 0.0,+ -0.312988, -0.94549, 0.0899272, 0.0,+ -0.497338, 0.178325, 0.849032, 0.0,+ -0.101136, -0.981014, 0.165477, 0.0,+ -0.521688, 0.0553434, -0.851339, 0.0,+ -0.786182, -0.583814, 0.202678, 0.0,+ -0.565191, 0.821858, -0.0714658, 0.0,+ 0.437895, 0.152598, -0.885981, 0.0,+ -0.92394, 0.353436, -0.14635, 0.0,+ 0.212189, -0.815162, -0.538969, 0.0,+ -0.859262, 0.143405, -0.491024, 0.0,+ 0.991353, 0.112814, 0.0670273, 0.0,+ 0.0337884, -0.979891, -0.196654, 0.0 + ]++{- +-- generates the table based on the functions defined above+vectorTable :: (Double, Double, Double)+vectorTable = listArray (0, 255) $ fromMaybe [] $ genVectors 256+-}
@@ -0,0 +1,93 @@+/* include dependencies */+#ifndef _COMMON_H_+#define _COMMON_H_+/* max and min macros */+#if defined(__GNUC__) && defined(linux)+# define min(x, y) ({ \+ __typeof__(x) _x = (x); \+ __typeof__(y) _y = (y); \+ _x < _y ? _x : _y; \+ })+# define max(x, y) ({ \+ __typeof__(x) _x = (x); \+ __typeof__(y) _y = (y); \+ _x > _y ? _x : _y; \+ })+#else+# if !defined(WINDOWS_H_INCLUDED) /*+ * not gcc and no windows.h was included+ * (because windows.h has its own max/min+ * macros)+ */+# define min(x, y) ((x) < (y) ? (x) : (y))+# define max(x, y) ((x) > (y) ? (x) : (y))+# endif+#endif /* not gcc */++/* branch prediction macros */+#ifdef __GNUC__+# define likely(x) __builtin_expect(!!(x), 1)+# define unlikely(x) __builtin_expect(!!(x), 0)+#else /* not gcc */+# define likely(x) (x)+# define unlikely(x) (x)+# define __attribute__(x)+#endif /* not gcc */++/* data alignment attributes */+#ifdef __GNUC__+# define ALIGN(x) __attribute__((aligned(x)))+#else /* not gcc */+# define ALIGN(x) __declspec( align(x) )+#endif++/*+ * Functions marked with __ATTR_CONST do not examine any values except+ * their arguments, and have no effects except the return value. This+ * is a stricter class than __ATTR_PURE (see below), since the function+ * is not allowed to read global memory. Such a function can be subject+ * to common subexpression elimination and loop optimization in GCC.+ *+ * Functions marked with __ATTR_MALLOC behave like malloc: any non-NULL+ * pointer the function returns cannot alias any other pointer valid+ * when the function returns. This helps GCC optimize better in some+ * cases.+ *+ * Functions marked with __ATTR_PURE have no effects except the+ * return value and their return value depends only on the parameters+ * and/or global variables. Such a function can be subject to common+ * subexpression elimination and loop optimization in GCC.+ *+ * Functions marked with __NON_NULL cannot receive a NULL pointer in any+ * of their pointer arguments. With this information, the compiler can+ * check for correctness at compile-time (issuing a warning if -Wnonnull+ * is enabled) and possibly do certain optimizations by disregarding the+ * NULL pointer case.+ */+#if defined(__GNUC__) && __GNUC__ >= 3+# define __ATTR_CONST __attribute__((__const__))+# define __ATTR_MALLOC __attribute__((__malloc__))+# define __ATTR_PURE __attribute__((__pure__))+# define __NON_NULL __attribute__((__nonnull__))+#else+# define __ATTR_CONST+# define __ATTR_MALLOC+# define __ATTR_PURE+# define __NON_NULL+#endif++/*+ * If we are building a dll, public includes are exported when BUILD_DLL is present+ */+#if defined(BUILD_DLL)+# define DLL_EXPORT __declspec(dllexport)+#else+# if !defined(COUPLED)+# define DLL_EXPORT __declspec(dllimport)+# else+# define DLL_EXPORT+# endif+#+#endif++#endif /* _COMMON_H_ */
@@ -0,0 +1,342 @@+#include "noisegen.h" + +static const double staticTable[1024] = + { + -0.763874, -0.596439, -0.246489, 0.0, + 0.396055, 0.904518, -0.158073, 0.0, + -0.499004, -0.8665, -0.0131631, 0.0, + 0.468724, -0.824756, 0.316346, 0.0, + 0.829598, 0.43195, 0.353816, 0.0, + -0.454473, 0.629497, -0.630228, 0.0, + -0.162349, -0.869962, -0.465628, 0.0, + 0.932805, 0.253451, 0.256198, 0.0, + -0.345419, 0.927299, -0.144227, 0.0, + -0.715026, -0.293698, -0.634413, 0.0, + -0.245997, 0.717467, -0.651711, 0.0, + -0.967409, -0.250435, -0.037451, 0.0, + 0.901729, 0.397108, -0.170852, 0.0, + 0.892657, -0.0720622, -0.444938, 0.0, + 0.0260084, -0.0361701, 0.999007, 0.0, + 0.949107, -0.19486, 0.247439, 0.0, + 0.471803, -0.807064, -0.355036, 0.0, + 0.879737, 0.141845, 0.453809, 0.0, + 0.570747, 0.696415, 0.435033, 0.0, + -0.141751, -0.988233, -0.0574584, 0.0, + -0.58219, -0.0303005, 0.812488, 0.0, + -0.60922, 0.239482, -0.755975, 0.0, + 0.299394, -0.197066, -0.933557, 0.0, + -0.851615, -0.220702, -0.47544, 0.0, + 0.848886, 0.341829, -0.403169, 0.0, + -0.156129, -0.687241, 0.709453, 0.0, + -0.665651, 0.626724, 0.405124, 0.0, + 0.595914, -0.674582, 0.43569, 0.0, + 0.171025, -0.509292, 0.843428, 0.0, + 0.78605, 0.536414, -0.307222, 0.0, + 0.18905, -0.791613, 0.581042, 0.0, + -0.294916, 0.844994, 0.446105, 0.0, + 0.342031, -0.58736, -0.7335, 0.0, + 0.57155, 0.7869, 0.232635, 0.0, + 0.885026, -0.408223, 0.223791, 0.0, + -0.789518, 0.571645, 0.223347, 0.0, + 0.774571, 0.31566, 0.548087, 0.0, + -0.79695, -0.0433603, -0.602487, 0.0, + -0.142425, -0.473249, -0.869339, 0.0, + -0.0698838, 0.170442, 0.982886, 0.0, + 0.687815, -0.484748, 0.540306, 0.0, + 0.543703, -0.534446, -0.647112, 0.0, + 0.97186, 0.184391, -0.146588, 0.0, + 0.707084, 0.485713, -0.513921, 0.0, + 0.942302, 0.331945, 0.043348, 0.0, + 0.499084, 0.599922, 0.625307, 0.0, + -0.289203, 0.211107, 0.9337, 0.0, + 0.412433, -0.71667, -0.56239, 0.0, + 0.87721, -0.082816, 0.47291, 0.0, + -0.420685, -0.214278, 0.881538, 0.0, + 0.752558, -0.0391579, 0.657361, 0.0, + 0.0765725, -0.996789, 0.0234082, 0.0, + -0.544312, -0.309435, -0.779727, 0.0, + -0.455358, -0.415572, 0.787368, 0.0, + -0.874586, 0.483746, 0.0330131, 0.0, + 0.245172, -0.0838623, 0.965846, 0.0, + 0.382293, -0.432813, 0.81641, 0.0, + -0.287735, -0.905514, 0.311853, 0.0, + -0.667704, 0.704955, -0.239186, 0.0, + 0.717885, -0.464002, -0.518983, 0.0, + 0.976342, -0.214895, 0.0240053, 0.0, + -0.0733096, -0.921136, 0.382276, 0.0, + -0.986284, 0.151224, -0.0661379, 0.0, + -0.899319, -0.429671, 0.0812908, 0.0, + 0.652102, -0.724625, 0.222893, 0.0, + 0.203761, 0.458023, -0.865272, 0.0, + -0.030396, 0.698724, -0.714745, 0.0, + -0.460232, 0.839138, 0.289887, 0.0, + -0.0898602, 0.837894, 0.538386, 0.0, + -0.731595, 0.0793784, 0.677102, 0.0, + -0.447236, -0.788397, 0.422386, 0.0, + 0.186481, 0.645855, -0.740335, 0.0, + -0.259006, 0.935463, 0.240467, 0.0, + 0.445839, 0.819655, -0.359712, 0.0, + 0.349962, 0.755022, -0.554499, 0.0, + -0.997078, -0.0359577, 0.0673977, 0.0, + -0.431163, -0.147516, -0.890133, 0.0, + 0.299648, -0.63914, 0.708316, 0.0, + 0.397043, 0.566526, -0.722084, 0.0, + -0.502489, 0.438308, -0.745246, 0.0, + 0.0687235, 0.354097, 0.93268, 0.0, + -0.0476651, -0.462597, 0.885286, 0.0, + -0.221934, 0.900739, -0.373383, 0.0, + -0.956107, -0.225676, 0.186893, 0.0, + -0.187627, 0.391487, -0.900852, 0.0, + -0.224209, -0.315405, 0.92209, 0.0, + -0.730807, -0.537068, 0.421283, 0.0, + -0.0353135, -0.816748, 0.575913, 0.0, + -0.941391, 0.176991, -0.287153, 0.0, + -0.154174, 0.390458, 0.90762, 0.0, + -0.283847, 0.533842, 0.796519, 0.0, + -0.482737, -0.850448, 0.209052, 0.0, + -0.649175, 0.477748, 0.591886, 0.0, + 0.885373, -0.405387, -0.227543, 0.0, + -0.147261, 0.181623, -0.972279, 0.0, + 0.0959236, -0.115847, -0.988624, 0.0, + -0.89724, -0.191348, 0.397928, 0.0, + 0.903553, -0.428461, -0.00350461, 0.0, + 0.849072, -0.295807, -0.437693, 0.0, + 0.65551, 0.741754, -0.141804, 0.0, + 0.61598, -0.178669, 0.767232, 0.0, + 0.0112967, 0.932256, -0.361623, 0.0, + -0.793031, 0.258012, 0.551845, 0.0, + 0.421933, 0.454311, 0.784585, 0.0, + -0.319993, 0.0401618, -0.946568, 0.0, + -0.81571, 0.551307, -0.175151, 0.0, + -0.377644, 0.00322313, 0.925945, 0.0, + 0.129759, -0.666581, -0.734052, 0.0, + 0.601901, -0.654237, -0.457919, 0.0, + -0.927463, -0.0343576, -0.372334, 0.0, + -0.438663, -0.868301, -0.231578, 0.0, + -0.648845, -0.749138, -0.133387, 0.0, + 0.507393, -0.588294, 0.629653, 0.0, + 0.726958, 0.623665, 0.287358, 0.0, + 0.411159, 0.367614, -0.834151, 0.0, + 0.806333, 0.585117, -0.0864016, 0.0, + 0.263935, -0.880876, 0.392932, 0.0, + 0.421546, -0.201336, 0.884174, 0.0, + -0.683198, -0.569557, -0.456996, 0.0, + -0.117116, -0.0406654, -0.992285, 0.0, + -0.643679, -0.109196, -0.757465, 0.0, + -0.561559, -0.62989, 0.536554, 0.0, + 0.0628422, 0.104677, -0.992519, 0.0, + 0.480759, -0.2867, -0.828658, 0.0, + -0.228559, -0.228965, -0.946222, 0.0, + -0.10194, -0.65706, -0.746914, 0.0, + 0.0689193, -0.678236, 0.731605, 0.0, + 0.401019, -0.754026, 0.52022, 0.0, + -0.742141, 0.547083, -0.387203, 0.0, + -0.00210603, -0.796417, -0.604745, 0.0, + 0.296725, -0.409909, -0.862513, 0.0, + -0.260932, -0.798201, 0.542945, 0.0, + -0.641628, 0.742379, 0.192838, 0.0, + -0.186009, -0.101514, 0.97729, 0.0, + 0.106711, -0.962067, 0.251079, 0.0, + -0.743499, 0.30988, -0.592607, 0.0, + -0.795853, -0.605066, -0.0226607, 0.0, + -0.828661, -0.419471, -0.370628, 0.0, + 0.0847218, -0.489815, -0.8677, 0.0, + -0.381405, 0.788019, -0.483276, 0.0, + 0.282042, -0.953394, 0.107205, 0.0, + 0.530774, 0.847413, 0.0130696, 0.0, + 0.0515397, 0.922524, 0.382484, 0.0, + -0.631467, -0.709046, 0.313852, 0.0, + 0.688248, 0.517273, 0.508668, 0.0, + 0.646689, -0.333782, -0.685845, 0.0, + -0.932528, -0.247532, -0.262906, 0.0, + 0.630609, 0.68757, -0.359973, 0.0, + 0.577805, -0.394189, 0.714673, 0.0, + -0.887833, -0.437301, -0.14325, 0.0, + 0.690982, 0.174003, 0.701617, 0.0, + -0.866701, 0.0118182, 0.498689, 0.0, + -0.482876, 0.727143, 0.487949, 0.0, + -0.577567, 0.682593, -0.447752, 0.0, + 0.373768, 0.0982991, 0.922299, 0.0, + 0.170744, 0.964243, -0.202687, 0.0, + 0.993654, -0.035791, -0.106632, 0.0, + 0.587065, 0.4143, -0.695493, 0.0, + -0.396509, 0.26509, -0.878924, 0.0, + -0.0866853, 0.83553, -0.542563, 0.0, + 0.923193, 0.133398, -0.360443, 0.0, + 0.00379108, -0.258618, 0.965972, 0.0, + 0.239144, 0.245154, -0.939526, 0.0, + 0.758731, -0.555871, 0.33961, 0.0, + 0.295355, 0.309513, 0.903862, 0.0, + 0.0531222, -0.91003, -0.411124, 0.0, + 0.270452, 0.0229439, -0.96246, 0.0, + 0.563634, 0.0324352, 0.825387, 0.0, + 0.156326, 0.147392, 0.976646, 0.0, + -0.0410141, 0.981824, 0.185309, 0.0, + -0.385562, -0.576343, -0.720535, 0.0, + 0.388281, 0.904441, 0.176702, 0.0, + 0.945561, -0.192859, -0.262146, 0.0, + 0.844504, 0.520193, 0.127325, 0.0, + 0.0330893, 0.999121, -0.0257505, 0.0, + -0.592616, -0.482475, -0.644999, 0.0, + 0.539471, 0.631024, -0.557476, 0.0, + 0.655851, -0.027319, -0.754396, 0.0, + 0.274465, 0.887659, 0.369772, 0.0, + -0.123419, 0.975177, -0.183842, 0.0, + -0.223429, 0.708045, 0.66989, 0.0, + -0.908654, 0.196302, 0.368528, 0.0, + -0.95759, -0.00863708, 0.288005, 0.0, + 0.960535, 0.030592, 0.276472, 0.0, + -0.413146, 0.907537, 0.0754161, 0.0, + -0.847992, 0.350849, -0.397259, 0.0, + 0.614736, 0.395841, 0.68221, 0.0, + -0.503504, -0.666128, -0.550234, 0.0, + -0.268833, -0.738524, -0.618314, 0.0, + 0.792737, -0.60001, -0.107502, 0.0, + -0.637582, 0.508144, -0.579032, 0.0, + 0.750105, 0.282165, -0.598101, 0.0, + -0.351199, -0.392294, -0.850155, 0.0, + 0.250126, -0.960993, -0.118025, 0.0, + -0.732341, 0.680909, -0.0063274, 0.0, + -0.760674, -0.141009, 0.633634, 0.0, + 0.222823, -0.304012, 0.926243, 0.0, + 0.209178, 0.505671, 0.836984, 0.0, + 0.757914, -0.56629, -0.323857, 0.0, + -0.782926, -0.339196, 0.52151, 0.0, + -0.462952, 0.585565, 0.665424, 0.0, + 0.61879, 0.194119, -0.761194, 0.0, + 0.741388, -0.276743, 0.611357, 0.0, + 0.707571, 0.702621, 0.0752872, 0.0, + 0.156562, 0.819977, 0.550569, 0.0, + -0.793606, 0.440216, 0.42, 0.0, + 0.234547, 0.885309, -0.401517, 0.0, + 0.132598, 0.80115, -0.58359, 0.0, + -0.377899, -0.639179, 0.669808, 0.0, + -0.865993, -0.396465, 0.304748, 0.0, + -0.624815, -0.44283, 0.643046, 0.0, + -0.485705, 0.825614, -0.287146, 0.0, + -0.971788, 0.175535, 0.157529, 0.0, + -0.456027, 0.392629, 0.798675, 0.0, + -0.0104443, 0.521623, -0.853112, 0.0, + -0.660575, -0.74519, 0.091282, 0.0, + -0.0157698, -0.307475, -0.951425, 0.0, + -0.603467, -0.250192, 0.757121, 0.0, + 0.506876, 0.25006, 0.824952, 0.0, + 0.255404, 0.966794, 0.00884498, 0.0, + 0.466764, -0.874228, -0.133625, 0.0, + 0.475077, -0.0682351, -0.877295, 0.0, + -0.224967, -0.938972, -0.260233, 0.0, + -0.377929, -0.814757, -0.439705, 0.0, + -0.305847, 0.542333, -0.782517, 0.0, + 0.26658, -0.902905, -0.337191, 0.0, + 0.0275773, 0.322158, -0.946284, 0.0, + 0.0185422, 0.716349, 0.697496, 0.0, + -0.20483, 0.978416, 0.0273371, 0.0, + -0.898276, 0.373969, 0.230752, 0.0, + -0.00909378, 0.546594, 0.837349, 0.0, + 0.6602, -0.751089, 0.000959236, 0.0, + 0.855301, -0.303056, 0.420259, 0.0, + 0.797138, 0.0623013, -0.600574, 0.0, + 0.48947, -0.866813, 0.0951509, 0.0, + 0.251142, 0.674531, 0.694216, 0.0, + -0.578422, -0.737373, -0.348867, 0.0, + -0.254689, -0.514807, 0.818601, 0.0, + 0.374972, 0.761612, 0.528529, 0.0, + 0.640303, -0.734271, -0.225517, 0.0, + -0.638076, 0.285527, 0.715075, 0.0, + 0.772956, -0.15984, -0.613995, 0.0, + 0.798217, -0.590628, 0.118356, 0.0, + -0.986276, -0.0578337, -0.154644, 0.0, + -0.312988, -0.94549, 0.0899272, 0.0, + -0.497338, 0.178325, 0.849032, 0.0, + -0.101136, -0.981014, 0.165477, 0.0, + -0.521688, 0.0553434, -0.851339, 0.0, + -0.786182, -0.583814, 0.202678, 0.0, + -0.565191, 0.821858, -0.0714658, 0.0, + 0.437895, 0.152598, -0.885981, 0.0, + -0.92394, 0.353436, -0.14635, 0.0, + 0.212189, -0.815162, -0.538969, 0.0, + -0.859262, 0.143405, -0.491024, 0.0, + 0.991353, 0.112814, 0.0670273, 0.0, + 0.0337884, -0.979891, -0.196654, 0.0 +}; + +static const int xNoiseGen = 1619; +static const int yNoiseGen = 31337; +static const int zNoiseGen = 6971; +static const int seedNoiseGen = 1013; +static const int shiftNoiseGen = 8; + +__ATTR_PURE static double scurve3 (const double a) +{ + return (a * a * (3.0 - 2.0 * a)); +} + + +__ATTR_PURE static double scurve5 (const double a) +{ + double a3 = a * a * a; + double a4 = a3 * a; + double a5 = a4 * a; + return (6.0 * a5) - (15.0 * a4) + (10.0 * a3); +} + +__ATTR_PURE static double linear (const double n0, const double n1, const double a) +{ + return ((1.0 - a) * n0) + (a * n1); +} + +__ATTR_PURE static double gradientNoise3D (const double fx, const double fy, const double fz, const int ix, const int iy, const int iz, const int seed) +{ + const int icalc = xNoiseGen * ix + + yNoiseGen * iy + + zNoiseGen * iz + + seedNoiseGen * seed; + const int index = ((icalc ^ (icalc >> shiftNoiseGen)) & 0xff) << 2; + + const double xvGrad = staticTable[index]; + const double yvGrad = staticTable[index + 1]; + const double zvGrad = staticTable[index + 2]; + + const double xvPoint = fx - (double) ix; + const double yvPoint = fy - (double) iy; + const double zvPoint = fz - (double) iz; + + return ( (xvGrad * xvPoint) + (yvGrad * yvPoint) + (zvGrad * zvPoint) * 2.12); + +} + +__ATTR_PURE double gradientCoherentNoise(double x, double y, double z, int seed) +{ + double n0a, n1a, ix0a, n0b, n1b, ix1a, iy0, n0c, n1c, ix0b, n0d, n1d, ix1b, iy1, final; + double xs = 0, ys = 0, zs = 0; + const int x0 = (x > 0.0? (int)x: (int)x - 1); + const int x1 = x0 + 1; + const int y0 = (y > 0.0? (int)y: (int)y - 1); + const int y1 = y0 + 1; + const int z0 = (z > 0.0? (int)z: (int)z - 1); + const int z1 = z0 + 1; + + xs = scurve3 (x - (double)x0); + ys = scurve3 (y - (double)y0); + zs = scurve3 (z - (double)z0); + + n0a = gradientNoise3D(x,y,z,x0,y0,z0,seed); + n1a = gradientNoise3D(x,y,z,x1,y0,z0,seed); + ix0a = linear(n0a,n1a,xs); + n0b = gradientNoise3D(x,y,z,x0,y1,z0,seed); + n1b = gradientNoise3D(x,y,z,x1,y1,z0,seed); + ix1a = linear(n0b,n1b,xs); + iy0 = linear(ix0a,ix1a,ys); + n0c = gradientNoise3D(x,y,z,x0,y0,z1,seed); + n1c = gradientNoise3D(x,y,z,x1,y0,z1,seed); + ix0b = linear(n0c,n1c,xs); + n0d = gradientNoise3D(x,y,z,x0,y1,z1,seed); + n1d = gradientNoise3D(x,y,z,x1,y1,z1,seed); + ix1b = linear(n0d,n1d,xs); + iy1 = linear(ix0b,ix1b,ys); + + final = linear(iy0,iy1,zs); + + return final; + +}
@@ -0,0 +1,2 @@+#include "common.h"+double gradientCoherentNoise(double, double, double, int);
@@ -0,0 +1,69 @@+name: Noise+version: 1.0.0+maintainer: Hugo Daniel <hugodaniel@hackological.com>+cabal-version: >= 1.6+build-type: Simple+category: Math+synopsis: A Haskell coherent noise generator+description: A Haskell coherent noise generator roughly based on libnoise.+ For more information on libnoise, please check: <http://libnoise.sourceforge.net>.+ .+ The noise modules were extensively profiled and benchmarked,+ the slower pure functions were rewritten in C.+ The main objective of this packer is to provide a simple interface + to compose noise modules.+ .+ You could compose several noise modules like this:+ .+ > myPerlin = perlin `isSourceOf` scalebias { scale = 1.0 } + `isSourceOf` absolute+ > myComposition = perlin { perlinFrequency = 0.123 } + `andModule` billow { billowOctaves = 12 } + `andModule` myPerlin + `areSourcesOf` + select { upperBound = 0.7, lowerBound = 0.2 }+ .+ This is a 3D noise package, to get a value you need to specify a+ triple:+ .+ > getValue myComposition (-0.1, -0.5, 0.76)+ .+ For more information please read the documentation of each module + bellow.++license: BSD3+license-file: LICENSE++extra-source-files:+ README.txt+ Math/Noise/common.h+ Math/Noise/noisegen.h+ Math/Noise/Modules/perlin.h++library+ build-depends:+ base < 5, vector, array, data-default++ exposed-modules:+ Math.Noise+ Math.Noise.NoiseGen+ Math.Noise.NoiseModule+ Math.Noise.Modules.Abs+ Math.Noise.Modules.Billow+ Math.Noise.Modules.Perlin+ Math.Noise.Modules.Select+ Math.Noise.Modules.ScaleBias+ other-modules:+ Math.Noise.Interpolation+ Math.Noise.VectorTable++ ghc-options: -O2 -funbox-strict-fields+ extensions: BangPatterns + include-dirs:+ Math/Noise+ Math/Noise/Modules++ c-sources:+ Math/Noise/noisegen.c+ Math/Noise/Modules/perlin.c+
@@ -0,0 +1,124 @@+This is a Haskell module for GLFW OpenGL framework +(http://glfw.sourceforge.net). It provides an alternative +to GLUT for OpenGL based Haskell programs. + +SOE (http://www.haskell.org/soe) now depends on this package. + +The website for this Haskell module is at Haskell Wiki site: +http://haskell.org/haskellwiki/GLFW + +======= +Changes +======= + +See separate file "Changlog.txt". + +============ +Installation +============ + +The package comes together with a (partial) source distribution +of GLFW v2.6, which is compiled and installed together with +the Haskell package. + +If you already have the Haskell package cabal-install, you can +simply do "cabal install GLFW", and it will download the latest +source from HackageDB, configure, compile, and install it +automatically. + +Otherwise, you may follow the standard Cabal package installation +steps: + +1. To configure the module, type + + runhaskell Setup.hs configure + or + + runhaskell Setup.hs configure --user --prefix=DIR + + if you want to install the package to your user's directory + instead of the system one (replace DIR with your own directory + choice). + +2. To build the module, type + + runhaskell Setup.hs build + +3. To install, type + + runhaskell Setup.hs install + +In the process it builds all GLFW C library source code. You may +use "runhaskell Setup.hs build --verbose" to see the actual +compilation steps. + +4. Optionally to build its Haddock documentation, type + + runhaskell Setup.hs haddock + +==== +NOTE +==== + +For Windows users, you may have to include GHC's gcc-lib directory +in your PATH environment, e.g., c:\ghc\ghc-6.8.3\gcc-lib, before +configuring the GLFW module, otherwise it'll complain about missing +program for ld. + +For Linux users there is an option to link to a system wide GLFW +dynamical library instead of compilation from source. It can be +done by providing "--flags=dynamic" as an option to cabal configure +command. + +============= +Package Usage +============= + +The package is tested with GHC 6.8.3 as well GHC 6.10.3 on all +three platforms (Linux, Win32/MinGW, and Mac OS X). Though it may +work with older versions of GHC or even Hugs, they are not tested. + +It installs a new Haskell package called "GLFW" and the actual +module to import is "Graphics.UI.GLFW". You'll need to pass +"-package GLFW" to GHC if you want to compile it. + +GLFW itself is well documented (see GLFW website), and the +Haskell module API is documented via Haddock. + +Not all functions are fully tested, and there are still a +few GLFW C functions missing from the Haskell module, namely +the image loading functions. They are excluded because image +handling is a separate issue, and low level buffer manipulation +would obscure their use further. Texture loading from TGA +format is supported both from file and from memory (via a +string buffer). + +The Haskell module also provides basic text rendering while +GLFW doesn't. It comes from a free 8x16 font which is made +into a TGA texture, stored as a Haskell string in the file +GLFW.hs (also the reason for its big size). Text rendering +is only possible with Alpha enabled. Again, see SOE.hs from +the SOE package for sample usage. + +GLFW doesn't work well with GHC threads, forkIO or threadDelay. +So avoid them if you can. + + +====================== +Additional Information +====================== + +You may send your bug report and feature request to the package +maintainer: Paul H. Liu <paul@thev.net>. + +Lastest GLFW development is hosted in a darcs repository. You +may obtain it by + + darcs pull http://code.haskell.org/GLFW + +There is also a mailinglist for GLFW deveopers at + + http://projects.haskell.org/cgi-bin/mailman/listinfo/glfw + +-- +Last Updated: Wed Aug 12 EDT 2009
@@ -0,0 +1,6 @@+module Main (main) where++import Distribution.Simple (defaultMain)++main :: IO ()+main = defaultMain
binary file changed (absent → 455252 bytes)
binary file changed (absent → 3228 bytes)
binary file changed (absent → 1872 bytes)
binary file changed (absent → 3872 bytes)
binary file changed (absent → 17096 bytes)
binary file changed (absent → 2808 bytes)
binary file changed (absent → 6504 bytes)
binary file changed (absent → 5706 bytes)
binary file changed (absent → 19256 bytes)
binary file changed (absent → 9258 bytes)
binary file changed (absent → 34088 bytes)
binary file changed (absent → 3714 bytes)
binary file changed (absent → 10872 bytes)
binary file changed (absent → 5139 bytes)
binary file changed (absent → 25896 bytes)
binary file changed (absent → 1760 bytes)
binary file changed (absent → 3693 bytes)
binary file changed (absent → 11624 bytes)
binary file changed (absent → 7924 bytes)
binary file changed (absent → 21944 bytes)
binary file changed (absent → 247369 bytes)
binary file changed (absent → 334920 bytes)
binary file changed (absent → 11232 bytes)
@@ -0,0 +1,29 @@+module Paths_Noise (+ version,+ getBinDir, getLibDir, getDataDir, getLibexecDir,+ getDataFileName+ ) where++import Data.Version (Version(..))+import System.Environment (getEnv)++version :: Version+version = Version {versionBranch = [0,0,1], versionTags = []}++bindir, libdir, datadir, libexecdir :: FilePath++bindir = "/home/hugo/.cabal/bin"+libdir = "/home/hugo/.cabal/lib/Noise-0.0.1/ghc-7.0.3"+datadir = "/home/hugo/.cabal/share/Noise-0.0.1"+libexecdir = "/home/hugo/.cabal/libexec"++getBinDir, getLibDir, getDataDir, getLibexecDir :: IO FilePath+getBinDir = catch (getEnv "Noise_bindir") (\_ -> return bindir)+getLibDir = catch (getEnv "Noise_libdir") (\_ -> return libdir)+getDataDir = catch (getEnv "Noise_datadir") (\_ -> return datadir)+getLibexecDir = catch (getEnv "Noise_libexecdir") (\_ -> return libexecdir)++getDataFileName :: FilePath -> IO FilePath+getDataFileName name = do+ dir <- getDataDir+ return (dir ++ "/" ++ name)
@@ -0,0 +1,30 @@+/* DO NOT EDIT: This file is automatically generated by Cabal */++/* package array-0.3.0.2 */+#define VERSION_array "0.3.0.2"+#define MIN_VERSION_array(major1,major2,minor) (\+ (major1) < 0 || \+ (major1) == 0 && (major2) < 3 || \+ (major1) == 0 && (major2) == 3 && (minor) <= 0)++/* package base-4.3.1.0 */+#define VERSION_base "4.3.1.0"+#define MIN_VERSION_base(major1,major2,minor) (\+ (major1) < 4 || \+ (major1) == 4 && (major2) < 3 || \+ (major1) == 4 && (major2) == 3 && (minor) <= 1)++/* package data-default-0.2.0.1 */+#define VERSION_data_default "0.2.0.1"+#define MIN_VERSION_data_default(major1,major2,minor) (\+ (major1) < 0 || \+ (major1) == 0 && (major2) < 2 || \+ (major1) == 0 && (major2) == 2 && (minor) <= 0)++/* package vector-0.7.0.1 */+#define VERSION_vector "0.7.0.1"+#define MIN_VERSION_vector(major1,major2,minor) (\+ (major1) < 0 || \+ (major1) == 0 && (major2) < 7 || \+ (major1) == 0 && (major2) == 7 && (minor) <= 0)+
binary file changed (absent → 643436 bytes)
@@ -0,0 +1,2 @@+[InstalledPackageInfo {installedPackageId = InstalledPackageId "Noise-0.0.1-inplace", sourcePackageId = PackageIdentifier {pkgName = PackageName "Noise", pkgVersion = Version {versionBranch = [0,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Hugo Daniel <hugodaniel@hackological.com>", author = "", stability = "", homepage = "", pkgUrl = "", description = "A Haskell coherent noise generator roughly based on libnoise.\nFor more information on libnoise, please check: <http://libnoise.sourceforge.net>.\n\nThe noise modules were extensively profiled and benchmarked,\nthe slower pure functions were rewritten in C.\nThe main objective of this packer is to provide a simple interface\nto compose noise modules.\n\nYou could compose several noise modules like this:\n\n> myPerlin = perlin `isSourceOf` scalebias\nscale = 1.0\n`isSourceOf` absolute\n> myComposition = perlin\nperlinFrequency = 0.123\n`andModule` billow\nbillowOctaves = 12\n`andModule` myPerlin\n`areSourcesOf`\nselect\nupperBound = 0.7, lowerBound = 0.2\n\nThis is a 3D noise package, to get a value you need to specify a\ntriple:\n\n> getValue myComposition (-0.1, -0.5, 0.76)\n\nFor more information please read the documentation of each module\nbellow.", category = "Math", exposed = True, exposedModules = ["Math.Noise","Math.Noise.NoiseGen","Math.Noise.NoiseModule","Math.Noise.Modules.Abs","Math.Noise.Modules.Billow","Math.Noise.Modules.Perlin","Math.Noise.Modules.Select","Math.Noise.Modules.ScaleBias"], hiddenModules = ["Math.Noise.Interpolation","Math.Noise.VectorTable"], importDirs = ["/home/hugo/Development/Personal/Noise/dist/build"], libraryDirs = ["/home/hugo/Development/Personal/Noise/dist/build"], hsLibraries = ["HSNoise-0.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/home/hugo/Development/Personal/Noise/Math/Noise","/home/hugo/Development/Personal/Noise/Math/Noise/Modules"], includes = [], depends = [InstalledPackageId "array-0.3.0.2-3444ee049e55c8df31a0796287f56a5e",InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20",InstalledPackageId "data-default-0.2.0.1-af7457a414bf8afe6d487bc4398590fa",InstalledPackageId "vector-0.7.0.1-3a18a3c369c7e19a25c6ed8559ed6128"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/Development/Personal/Noise/dist/doc/html/Noise/Noise.haddock"], haddockHTMLs = ["/home/hugo/Development/Personal/Noise/dist/doc/html/Noise"]}+]
@@ -0,0 +1,2 @@+Saved package config for Noise-0.0.1 written by Cabal-1.10.1.0 using ghc-7.0+LocalBuildInfo {configFlags = ConfigFlags {configPrograms = [], configProgramPaths = [], configProgramArgs = [], configHcFlavor = Flag GHC, configHcPath = NoFlag, configHcPkg = NoFlag, configVanillaLib = Flag True, configProfLib = Flag False, configSharedLib = Flag False, configProfExe = Flag False, configConfigureArgs = [], configOptimization = Flag NormalOptimisation, configProgPrefix = Flag "", configProgSuffix = Flag "", configInstallDirs = InstallDirs {prefix = Flag "/home/hugo/.cabal", bindir = NoFlag, libdir = NoFlag, libsubdir = NoFlag, dynlibdir = NoFlag, libexecdir = NoFlag, progdir = NoFlag, includedir = NoFlag, datadir = NoFlag, datasubdir = NoFlag, docdir = NoFlag, mandir = NoFlag, htmldir = NoFlag, haddockdir = NoFlag}, configScratchDir = NoFlag, configExtraLibDirs = [], configExtraIncludeDirs = [], configDistPref = Flag "dist", configVerbosity = Flag Normal, configUserInstall = Flag True, configPackageDB = NoFlag, configGHCiLib = Flag True, configSplitObjs = Flag False, configStripExes = Flag True, configConstraints = [Dependency (PackageName "array") (ThisVersion (Version {versionBranch = [0,3,0,2], versionTags = []})),Dependency (PackageName "base") (ThisVersion (Version {versionBranch = [4,3,1,0], versionTags = []})),Dependency (PackageName "data-default") (ThisVersion (Version {versionBranch = [0,2,0,1], versionTags = []})),Dependency (PackageName "vector") (ThisVersion (Version {versionBranch = [0,7,0,1], versionTags = []}))], configConfigurationsFlags = [], configTests = Flag False}, extraConfigArgs = [], installDirTemplates = InstallDirs {prefix = "/home/hugo/.cabal", bindir = "$prefix/bin", libdir = "$prefix/lib", libsubdir = "$pkgid/$compiler", dynlibdir = "$libdir", libexecdir = "$prefix/libexec", progdir = "$libdir/hugs/programs", includedir = "$libdir/$libsubdir/include", datadir = "$prefix/share", datasubdir = "$pkgid", docdir = "$datadir/doc/$pkgid", mandir = "$datadir/man", htmldir = "$docdir/html", haddockdir = "$htmldir"}, compiler = Compiler {compilerId = CompilerId GHC (Version {versionBranch = [7,0,3], versionTags = []}), compilerLanguages = [(Haskell98,"-XHaskell98"),(Haskell2010,"-XHaskell2010")], compilerExtensions = [(UnknownExtension "Haskell98","-XHaskell98"),(UnknownExtension "Haskell2010","-XHaskell2010"),(CPP,"-XCPP"),(UnknownExtension "NoCPP","-XNoCPP"),(PostfixOperators,"-XPostfixOperators"),(UnknownExtension "NoPostfixOperators","-XNoPostfixOperators"),(TupleSections,"-XTupleSections"),(UnknownExtension "NoTupleSections","-XNoTupleSections"),(PatternGuards,"-XPatternGuards"),(UnknownExtension "NoPatternGuards","-XNoPatternGuards"),(UnicodeSyntax,"-XUnicodeSyntax"),(UnknownExtension "NoUnicodeSyntax","-XNoUnicodeSyntax"),(MagicHash,"-XMagicHash"),(UnknownExtension "NoMagicHash","-XNoMagicHash"),(PolymorphicComponents,"-XPolymorphicComponents"),(UnknownExtension "NoPolymorphicComponents","-XNoPolymorphicComponents"),(ExistentialQuantification,"-XExistentialQuantification"),(UnknownExtension "NoExistentialQuantification","-XNoExistentialQuantification"),(KindSignatures,"-XKindSignatures"),(UnknownExtension "NoKindSignatures","-XNoKindSignatures"),(EmptyDataDecls,"-XEmptyDataDecls"),(UnknownExtension "NoEmptyDataDecls","-XNoEmptyDataDecls"),(ParallelListComp,"-XParallelListComp"),(UnknownExtension "NoParallelListComp","-XNoParallelListComp"),(TransformListComp,"-XTransformListComp"),(UnknownExtension "NoTransformListComp","-XNoTransformListComp"),(ForeignFunctionInterface,"-XForeignFunctionInterface"),(UnknownExtension "NoForeignFunctionInterface","-XNoForeignFunctionInterface"),(UnliftedFFITypes,"-XUnliftedFFITypes"),(UnknownExtension "NoUnliftedFFITypes","-XNoUnliftedFFITypes"),(GHCForeignImportPrim,"-XGHCForeignImportPrim"),(UnknownExtension "NoGHCForeignImportPrim","-XNoGHCForeignImportPrim"),(LiberalTypeSynonyms,"-XLiberalTypeSynonyms"),(UnknownExtension "NoLiberalTypeSynonyms","-XNoLiberalTypeSynonyms"),(Rank2Types,"-XRank2Types"),(UnknownExtension "NoRank2Types","-XNoRank2Types"),(RankNTypes,"-XRankNTypes"),(UnknownExtension "NoRankNTypes","-XNoRankNTypes"),(ImpredicativeTypes,"-XImpredicativeTypes"),(UnknownExtension "NoImpredicativeTypes","-XNoImpredicativeTypes"),(TypeOperators,"-XTypeOperators"),(UnknownExtension "NoTypeOperators","-XNoTypeOperators"),(RecursiveDo,"-XRecursiveDo"),(UnknownExtension "NoRecursiveDo","-XNoRecursiveDo"),(DoRec,"-XDoRec"),(UnknownExtension "NoDoRec","-XNoDoRec"),(Arrows,"-XArrows"),(UnknownExtension "NoArrows","-XNoArrows"),(UnknownExtension "PArr","-XPArr"),(UnknownExtension "NoPArr","-XNoPArr"),(TemplateHaskell,"-XTemplateHaskell"),(UnknownExtension "NoTemplateHaskell","-XNoTemplateHaskell"),(QuasiQuotes,"-XQuasiQuotes"),(UnknownExtension "NoQuasiQuotes","-XNoQuasiQuotes"),(Generics,"-XGenerics"),(UnknownExtension "NoGenerics","-XNoGenerics"),(NoImplicitPrelude,"-XNoImplicitPrelude"),(NoImplicitPrelude,"-XNoImplicitPrelude"),(RecordWildCards,"-XRecordWildCards"),(UnknownExtension "NoRecordWildCards","-XNoRecordWildCards"),(NamedFieldPuns,"-XNamedFieldPuns"),(UnknownExtension "NoNamedFieldPuns","-XNoNamedFieldPuns"),(RecordPuns,"-XRecordPuns"),(UnknownExtension "NoRecordPuns","-XNoRecordPuns"),(DisambiguateRecordFields,"-XDisambiguateRecordFields"),(UnknownExtension "NoDisambiguateRecordFields","-XNoDisambiguateRecordFields"),(OverloadedStrings,"-XOverloadedStrings"),(UnknownExtension "NoOverloadedStrings","-XNoOverloadedStrings"),(GADTs,"-XGADTs"),(UnknownExtension "NoGADTs","-XNoGADTs"),(ViewPatterns,"-XViewPatterns"),(UnknownExtension "NoViewPatterns","-XNoViewPatterns"),(TypeFamilies,"-XTypeFamilies"),(UnknownExtension "NoTypeFamilies","-XNoTypeFamilies"),(BangPatterns,"-XBangPatterns"),(UnknownExtension "NoBangPatterns","-XNoBangPatterns"),(NoMonomorphismRestriction,"-XNoMonomorphismRestriction"),(NoMonomorphismRestriction,"-XNoMonomorphismRestriction"),(NPlusKPatterns,"-XNPlusKPatterns"),(UnknownExtension "NoNPlusKPatterns","-XNoNPlusKPatterns"),(DoAndIfThenElse,"-XDoAndIfThenElse"),(UnknownExtension "NoDoAndIfThenElse","-XNoDoAndIfThenElse"),(RebindableSyntax,"-XRebindableSyntax"),(UnknownExtension "NoRebindableSyntax","-XNoRebindableSyntax"),(NoMonoPatBinds,"-XNoMonoPatBinds"),(NoMonoPatBinds,"-XNoMonoPatBinds"),(ExplicitForAll,"-XExplicitForAll"),(UnknownExtension "NoExplicitForAll","-XNoExplicitForAll"),(UnknownExtension "AlternativeLayoutRule","-XAlternativeLayoutRule"),(UnknownExtension "NoAlternativeLayoutRule","-XNoAlternativeLayoutRule"),(UnknownExtension "AlternativeLayoutRuleTransitional","-XAlternativeLayoutRuleTransitional"),(UnknownExtension "NoAlternativeLayoutRuleTransitional","-XNoAlternativeLayoutRuleTransitional"),(DatatypeContexts,"-XDatatypeContexts"),(UnknownExtension "NoDatatypeContexts","-XNoDatatypeContexts"),(MonoLocalBinds,"-XMonoLocalBinds"),(UnknownExtension "NoMonoLocalBinds","-XNoMonoLocalBinds"),(RelaxedPolyRec,"-XRelaxedPolyRec"),(UnknownExtension "NoRelaxedPolyRec","-XNoRelaxedPolyRec"),(ExtendedDefaultRules,"-XExtendedDefaultRules"),(UnknownExtension "NoExtendedDefaultRules","-XNoExtendedDefaultRules"),(ImplicitParams,"-XImplicitParams"),(UnknownExtension "NoImplicitParams","-XNoImplicitParams"),(ScopedTypeVariables,"-XScopedTypeVariables"),(UnknownExtension "NoScopedTypeVariables","-XNoScopedTypeVariables"),(PatternSignatures,"-XPatternSignatures"),(UnknownExtension "NoPatternSignatures","-XNoPatternSignatures"),(UnboxedTuples,"-XUnboxedTuples"),(UnknownExtension "NoUnboxedTuples","-XNoUnboxedTuples"),(StandaloneDeriving,"-XStandaloneDeriving"),(UnknownExtension "NoStandaloneDeriving","-XNoStandaloneDeriving"),(DeriveDataTypeable,"-XDeriveDataTypeable"),(UnknownExtension "NoDeriveDataTypeable","-XNoDeriveDataTypeable"),(DeriveFunctor,"-XDeriveFunctor"),(UnknownExtension "NoDeriveFunctor","-XNoDeriveFunctor"),(DeriveTraversable,"-XDeriveTraversable"),(UnknownExtension "NoDeriveTraversable","-XNoDeriveTraversable"),(DeriveFoldable,"-XDeriveFoldable"),(UnknownExtension "NoDeriveFoldable","-XNoDeriveFoldable"),(TypeSynonymInstances,"-XTypeSynonymInstances"),(UnknownExtension "NoTypeSynonymInstances","-XNoTypeSynonymInstances"),(FlexibleContexts,"-XFlexibleContexts"),(UnknownExtension "NoFlexibleContexts","-XNoFlexibleContexts"),(FlexibleInstances,"-XFlexibleInstances"),(UnknownExtension "NoFlexibleInstances","-XNoFlexibleInstances"),(ConstrainedClassMethods,"-XConstrainedClassMethods"),(UnknownExtension "NoConstrainedClassMethods","-XNoConstrainedClassMethods"),(MultiParamTypeClasses,"-XMultiParamTypeClasses"),(UnknownExtension "NoMultiParamTypeClasses","-XNoMultiParamTypeClasses"),(FunctionalDependencies,"-XFunctionalDependencies"),(UnknownExtension "NoFunctionalDependencies","-XNoFunctionalDependencies"),(GeneralizedNewtypeDeriving,"-XGeneralizedNewtypeDeriving"),(UnknownExtension "NoGeneralizedNewtypeDeriving","-XNoGeneralizedNewtypeDeriving"),(OverlappingInstances,"-XOverlappingInstances"),(UnknownExtension "NoOverlappingInstances","-XNoOverlappingInstances"),(UndecidableInstances,"-XUndecidableInstances"),(UnknownExtension "NoUndecidableInstances","-XNoUndecidableInstances"),(IncoherentInstances,"-XIncoherentInstances"),(UnknownExtension "NoIncoherentInstances","-XNoIncoherentInstances"),(PackageImports,"-XPackageImports"),(UnknownExtension "NoPackageImports","-XNoPackageImports"),(NewQualifiedOperators,"-XNewQualifiedOperators"),(UnknownExtension "NoNewQualifiedOperators","-XNoNewQualifiedOperators")]}, buildDir = "dist/build", scratchDir = "dist/scratch", libraryConfig = Just (ComponentLocalBuildInfo {componentPackageDeps = [(InstalledPackageId "array-0.3.0.2-3444ee049e55c8df31a0796287f56a5e",PackageIdentifier {pkgName = PackageName "array", pkgVersion = Version {versionBranch = [0,3,0,2], versionTags = []}}),(InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20",PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,3,1,0], versionTags = []}}),(InstalledPackageId "data-default-0.2.0.1-af7457a414bf8afe6d487bc4398590fa",PackageIdentifier {pkgName = PackageName "data-default", pkgVersion = Version {versionBranch = [0,2,0,1], versionTags = []}}),(InstalledPackageId "vector-0.7.0.1-3a18a3c369c7e19a25c6ed8559ed6128",PackageIdentifier {pkgName = PackageName "vector", pkgVersion = Version {versionBranch = [0,7,0,1], versionTags = []}})]}), executableConfigs = [], testSuiteConfigs = [], installedPkgs = PackageIndex (fromList [(InstalledPackageId "array-0.3.0.2-3444ee049e55c8df31a0796287f56a5e",InstalledPackageInfo {installedPackageId = InstalledPackageId "array-0.3.0.2-3444ee049e55c8df31a0796287f56a5e", sourcePackageId = PackageIdentifier {pkgName = PackageName "array", pkgVersion = Version {versionBranch = [0,3,0,2], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package defines the classes @IArray@ of immutable arrays and\n@MArray@ of arrays mutable within appropriate monads, as well as\nsome instances of these classes.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Array","Base"],ModuleName ["Data","Array","IArray"],ModuleName ["Data","Array","IO"],ModuleName ["Data","Array","IO","Internals"],ModuleName ["Data","Array","MArray"],ModuleName ["Data","Array","ST"],ModuleName ["Data","Array","Storable"],ModuleName ["Data","Array","Unboxed"],ModuleName ["Data","Array"]], hiddenModules = [], importDirs = ["/home/hugo/Local/lib/ghc-7.0.3/array-0.3.0.2"], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3/array-0.3.0.2"], hsLibraries = ["HSarray-0.3.0.2"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/Local/share/doc/ghc/html/libraries/array-0.3.0.2/array.haddock"], haddockHTMLs = ["/home/hugo/Local/share/doc/ghc/html/libraries/array-0.3.0.2"]}),(InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20",InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,3,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains the Prelude and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.", category = "", exposed = True, exposedModules = [ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Classes"],ModuleName ["GHC","Conc"],ModuleName ["GHC","Conc","IO"],ModuleName ["GHC","Conc","Signal"],ModuleName ["GHC","Conc","Sync"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Constants"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Float"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","MVar"],ModuleName ["GHC","IO"],ModuleName ["GHC","IO","IOMode"],ModuleName ["GHC","IO","Buffer"],ModuleName ["GHC","IO","Device"],ModuleName ["GHC","IO","BufferedIO"],ModuleName ["GHC","IO","FD"],ModuleName ["GHC","IO","Exception"],ModuleName ["GHC","IO","Encoding"],ModuleName ["GHC","IO","Encoding","Latin1"],ModuleName ["GHC","IO","Encoding","UTF8"],ModuleName ["GHC","IO","Encoding","UTF16"],ModuleName ["GHC","IO","Encoding","UTF32"],ModuleName ["GHC","IO","Encoding","Types"],ModuleName ["GHC","IO","Encoding","Iconv"],ModuleName ["GHC","IO","Encoding","CodePage"],ModuleName ["GHC","IO","Handle"],ModuleName ["GHC","IO","Handle","Types"],ModuleName ["GHC","IO","Handle","Internals"],ModuleName ["GHC","IO","Handle","FD"],ModuleName ["GHC","IO","Handle","Text"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IORef"],ModuleName ["GHC","IOArray"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","STRef"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["System","Event"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Exception","Base"],ModuleName ["Control","OldException"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Data"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","Functor"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [ModuleName ["System","Event","Array"],ModuleName ["System","Event","Clock"],ModuleName ["System","Event","Control"],ModuleName ["System","Event","EPoll"],ModuleName ["System","Event","IntMap"],ModuleName ["System","Event","Internal"],ModuleName ["System","Event","KQueue"],ModuleName ["System","Event","Manager"],ModuleName ["System","Event","PSQ"],ModuleName ["System","Event","Poll"],ModuleName ["System","Event","Thread"],ModuleName ["System","Event","Unique"]], importDirs = ["/home/hugo/Local/lib/ghc-7.0.3/base-4.3.1.0"], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3/base-4.3.1.0"], hsLibraries = ["HSbase-4.3.1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/home/hugo/Local/lib/ghc-7.0.3/base-4.3.1.0/include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.2.0.0-d9df11f804556f362beb0ea4e67261ba",InstalledPackageId "integer-gmp-0.2.0.3-4908241a60353d401d28868826ecd015",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/Local/share/doc/ghc/html/libraries/base-4.3.1.0/base.haddock"], haddockHTMLs = ["/home/hugo/Local/share/doc/ghc/html/libraries/base-4.3.1.0"]}),(InstalledPackageId "builtin_ffi",InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_ffi", sourcePackageId = PackageIdentifier {pkgName = PackageName "ffi", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3"], hsLibraries = ["HSffi"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/home/hugo/Local/lib/ghc-7.0.3/include"], includes = [], depends = [], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}),(InstalledPackageId "builtin_rts",InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_rts", sourcePackageId = PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3"], hsLibraries = ["HSrts"], extraLibraries = ["m","rt","dl"], extraGHCiLibraries = [], includeDirs = ["/home/hugo/Local/lib/ghc-7.0.3/include"], includes = ["Stg.h"], depends = [InstalledPackageId "builtin_ffi"], hugsOptions = [], ccOptions = [], ldOptions = ["-u","ghczmprim_GHCziTypes_Izh_static_info","-u","ghczmprim_GHCziTypes_Czh_static_info","-u","ghczmprim_GHCziTypes_Fzh_static_info","-u","ghczmprim_GHCziTypes_Dzh_static_info","-u","base_GHCziPtr_Ptr_static_info","-u","base_GHCziWord_Wzh_static_info","-u","base_GHCziInt_I8zh_static_info","-u","base_GHCziInt_I16zh_static_info","-u","base_GHCziInt_I32zh_static_info","-u","base_GHCziInt_I64zh_static_info","-u","base_GHCziWord_W8zh_static_info","-u","base_GHCziWord_W16zh_static_info","-u","base_GHCziWord_W32zh_static_info","-u","base_GHCziWord_W64zh_static_info","-u","base_GHCziStable_StablePtr_static_info","-u","ghczmprim_GHCziTypes_Izh_con_info","-u","ghczmprim_GHCziTypes_Czh_con_info","-u","ghczmprim_GHCziTypes_Fzh_con_info","-u","ghczmprim_GHCziTypes_Dzh_con_info","-u","base_GHCziPtr_Ptr_con_info","-u","base_GHCziPtr_FunPtr_con_info","-u","base_GHCziStable_StablePtr_con_info","-u","ghczmprim_GHCziBool_False_closure","-u","ghczmprim_GHCziBool_True_closure","-u","base_GHCziPack_unpackCString_closure","-u","base_GHCziIOziException_stackOverflow_closure","-u","base_GHCziIOziException_heapOverflow_closure","-u","base_ControlziExceptionziBase_nonTermination_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","base_ControlziExceptionziBase_nestedAtomically_closure","-u","base_GHCziWeak_runFinalizzerBatch_closure","-u","base_GHCziTopHandler_runIO_closure","-u","base_GHCziTopHandler_runNonIO_closure","-u","base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","base_GHCziConcziSync_runSparks_closure","-u","base_GHCziConcziSignal_runHandlers_closure"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}),(InstalledPackageId "containers-0.4.0.0-8781485edb2ac0db733a9f9c72e27945",InstalledPackageInfo {installedPackageId = InstalledPackageId "containers-0.4.0.0-8781485edb2ac0db733a9f9c72e27945", sourcePackageId = PackageIdentifier {pkgName = PackageName "containers", pkgVersion = Version {versionBranch = [0,4,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains efficient general-purpose implementations\nof various basic immutable container types. The declared cost of\neach operation is either worst-case or amortized, but remains\nvalid even if structures are shared.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Graph"],ModuleName ["Data","Sequence"],ModuleName ["Data","Tree"],ModuleName ["Data","IntMap"],ModuleName ["Data","IntSet"],ModuleName ["Data","Map"],ModuleName ["Data","Set"]], hiddenModules = [], importDirs = ["/home/hugo/Local/lib/ghc-7.0.3/containers-0.4.0.0"], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3/containers-0.4.0.0"], hsLibraries = ["HScontainers-0.4.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.3.0.2-3444ee049e55c8df31a0796287f56a5e",InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/Local/share/doc/ghc/html/libraries/containers-0.4.0.0/containers.haddock"], haddockHTMLs = ["/home/hugo/Local/share/doc/ghc/html/libraries/containers-0.4.0.0"]}),(InstalledPackageId "data-default-0.2.0.1-af7457a414bf8afe6d487bc4398590fa",InstalledPackageInfo {installedPackageId = InstalledPackageId "data-default-0.2.0.1-af7457a414bf8afe6d487bc4398590fa", sourcePackageId = PackageIdentifier {pkgName = PackageName "data-default", pkgVersion = Version {versionBranch = [0,2,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "<l.mai@web.de>", author = "Lukas Mai", stability = "", homepage = "", pkgUrl = "", description = "", category = "Data", exposed = True, exposedModules = [ModuleName ["Data","Default"]], hiddenModules = [], importDirs = ["/home/hugo/.cabal/lib/data-default-0.2.0.1/ghc-7.0.3"], libraryDirs = ["/home/hugo/.cabal/lib/data-default-0.2.0.1/ghc-7.0.3"], hsLibraries = ["HSdata-default-0.2.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20",InstalledPackageId "containers-0.4.0.0-8781485edb2ac0db733a9f9c72e27945"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/.cabal/share/doc/data-default-0.2.0.1/html/data-default.haddock"], haddockHTMLs = ["/home/hugo/.cabal/share/doc/data-default-0.2.0.1/html"]}),(InstalledPackageId "ghc-prim-0.2.0.0-d9df11f804556f362beb0ea4e67261ba",InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.2.0.0-d9df11f804556f362beb0ea4e67261ba", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,2,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Bool"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Generics"],ModuleName ["GHC","Magic"],ModuleName ["GHC","Ordering"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord32"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"],ModuleName ["GHC","Unit"]], hiddenModules = [], importDirs = ["/home/hugo/Local/lib/ghc-7.0.3/ghc-prim-0.2.0.0"], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3/ghc-prim-0.2.0.0"], hsLibraries = ["HSghc-prim-0.2.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/Local/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/ghc-prim.haddock"], haddockHTMLs = ["/home/hugo/Local/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0"]}),(InstalledPackageId "integer-gmp-0.2.0.3-4908241a60353d401d28868826ecd015",InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.2.0.3-4908241a60353d401d28868826ecd015", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,2,0,3], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains an Integer library based on GMP.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Integer"],ModuleName ["GHC","Integer","GMP","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], importDirs = ["/home/hugo/Local/lib/ghc-7.0.3/integer-gmp-0.2.0.3"], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3/integer-gmp-0.2.0.3"], hsLibraries = ["HSinteger-gmp-0.2.0.3"], extraLibraries = ["gmp"], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "ghc-prim-0.2.0.0-d9df11f804556f362beb0ea4e67261ba"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/Local/share/doc/ghc/html/libraries/integer-gmp-0.2.0.3/integer-gmp.haddock"], haddockHTMLs = ["/home/hugo/Local/share/doc/ghc/html/libraries/integer-gmp-0.2.0.3"]}),(InstalledPackageId "primitive-0.3.1-8254baf92d822508a6aa7805b8b44531",InstalledPackageInfo {installedPackageId = InstalledPackageId "primitive-0.3.1-8254baf92d822508a6aa7805b8b44531", sourcePackageId = PackageIdentifier {pkgName = PackageName "primitive", pkgVersion = Version {versionBranch = [0,3,1], versionTags = []}}, license = BSD3, copyright = "(c) Roman Leshchinskiy 2009-2010", maintainer = "Roman Leshchinskiy <rl@cse.unsw.edu.au>", author = "Roman Leshchinskiy <rl@cse.unsw.edu.au>", stability = "", homepage = "http://code.haskell.org/primitive", pkgUrl = "", description = ".\nThis package provides wrappers for primitive array operations from\nGHC.Prim.", category = "Data", exposed = True, exposedModules = [ModuleName ["Control","Monad","Primitive"],ModuleName ["Data","Primitive"],ModuleName ["Data","Primitive","MachDeps"],ModuleName ["Data","Primitive","Types"],ModuleName ["Data","Primitive","Array"],ModuleName ["Data","Primitive","ByteArray"],ModuleName ["Data","Primitive","Addr"]], hiddenModules = [], importDirs = ["/home/hugo/.cabal/lib/primitive-0.3.1/ghc-7.0.3"], libraryDirs = ["/home/hugo/.cabal/lib/primitive-0.3.1/ghc-7.0.3"], hsLibraries = ["HSprimitive-0.3.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/home/hugo/.cabal/lib/primitive-0.3.1/ghc-7.0.3/include"], includes = ["primitive-memops.h"], depends = [InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20",InstalledPackageId "ghc-prim-0.2.0.0-d9df11f804556f362beb0ea4e67261ba"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/.cabal/share/doc/primitive-0.3.1/html/primitive.haddock"], haddockHTMLs = ["/home/hugo/.cabal/share/doc/primitive-0.3.1/html"]}),(InstalledPackageId "vector-0.7.0.1-3a18a3c369c7e19a25c6ed8559ed6128",InstalledPackageInfo {installedPackageId = InstalledPackageId "vector-0.7.0.1-3a18a3c369c7e19a25c6ed8559ed6128", sourcePackageId = PackageIdentifier {pkgName = PackageName "vector", pkgVersion = Version {versionBranch = [0,7,0,1], versionTags = []}}, license = BSD3, copyright = "(c) Roman Leshchinskiy 2008-2010", maintainer = "Roman Leshchinskiy <rl@cse.unsw.edu.au>", author = "Roman Leshchinskiy <rl@cse.unsw.edu.au>", stability = "", homepage = "http://code.haskell.org/vector", pkgUrl = "", description = ".\nAn efficient implementation of Int-indexed arrays (both mutable\nand immutable), with a powerful loop fusion optimization framework .\n\nIt is structured as follows:\n\n[@Data.Vector@] Boxed vectors of arbitrary types.\n\n[@Data.Vector.Unboxed@] Unboxed vectors with an adaptive\nrepresentation based on data type families.\n\n[@Data.Vector.Storable@] Unboxed vectors of 'Storable' types.\n\n[@Data.Vector.Primitive@] Unboxed vectors of primitive types as\ndefined by the @primitive@ package. @Data.Vector.Unboxed@ is more\nflexible at no performance cost.\n\n[@Data.Vector.Generic@] Generic interface to the vector types.\n\nThere is also a (draft) tutorial on common uses of vector.\n\n* <http://haskell.org/haskellwiki/Numeric_Haskell:_A_Vector_Tutorial>\n\nPlease use the project trac to submit bug reports and feature\nrequests.\n\n* <http://trac.haskell.org/vector>\n\nChanges in version 0.7.0.1\n\n* Dependency on package ghc removed\n\nChanges in version 0.7\n\n* New functions for freezing, copying and thawing vectors: @freeze@,\n@thaw@, @unsafeThaw@ and @clone@\n\n* @newWith@ and @newUnsafeWith@ on mutable vectors replaced by\n@replicate@\n\n* New function: @concat@\n\n* New function for safe indexing: @(!?)@\n\n* @Monoid@ instances for all vector types\n\n* Significant recycling and fusion improvements\n\n* Bug fixes\n\n* Support for GHC 7.0", category = "Data, Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Vector","Internal","Check"],ModuleName ["Data","Vector","Fusion","Util"],ModuleName ["Data","Vector","Fusion","Stream","Size"],ModuleName ["Data","Vector","Fusion","Stream","Monadic"],ModuleName ["Data","Vector","Fusion","Stream"],ModuleName ["Data","Vector","Generic","Mutable"],ModuleName ["Data","Vector","Generic","Base"],ModuleName ["Data","Vector","Generic","New"],ModuleName ["Data","Vector","Generic"],ModuleName ["Data","Vector","Primitive","Mutable"],ModuleName ["Data","Vector","Primitive"],ModuleName ["Data","Vector","Storable","Internal"],ModuleName ["Data","Vector","Storable","Mutable"],ModuleName ["Data","Vector","Storable"],ModuleName ["Data","Vector","Unboxed","Base"],ModuleName ["Data","Vector","Unboxed","Mutable"],ModuleName ["Data","Vector","Unboxed"],ModuleName ["Data","Vector","Mutable"],ModuleName ["Data","Vector"]], hiddenModules = [], importDirs = ["/home/hugo/.cabal/lib/vector-0.7.0.1/ghc-7.0.3"], libraryDirs = ["/home/hugo/.cabal/lib/vector-0.7.0.1/ghc-7.0.3"], hsLibraries = ["HSvector-0.7.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/home/hugo/.cabal/lib/vector-0.7.0.1/ghc-7.0.3/include"], includes = [], depends = [InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20",InstalledPackageId "primitive-0.3.1-8254baf92d822508a6aa7805b8b44531"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/.cabal/share/doc/vector-0.7.0.1/html/vector.haddock"], haddockHTMLs = ["/home/hugo/.cabal/share/doc/vector-0.7.0.1/html"]})]) (fromList [(PackageName "array",fromList [(Version {versionBranch = [0,3,0,2], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "array-0.3.0.2-3444ee049e55c8df31a0796287f56a5e", sourcePackageId = PackageIdentifier {pkgName = PackageName "array", pkgVersion = Version {versionBranch = [0,3,0,2], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package defines the classes @IArray@ of immutable arrays and\n@MArray@ of arrays mutable within appropriate monads, as well as\nsome instances of these classes.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Array","Base"],ModuleName ["Data","Array","IArray"],ModuleName ["Data","Array","IO"],ModuleName ["Data","Array","IO","Internals"],ModuleName ["Data","Array","MArray"],ModuleName ["Data","Array","ST"],ModuleName ["Data","Array","Storable"],ModuleName ["Data","Array","Unboxed"],ModuleName ["Data","Array"]], hiddenModules = [], importDirs = ["/home/hugo/Local/lib/ghc-7.0.3/array-0.3.0.2"], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3/array-0.3.0.2"], hsLibraries = ["HSarray-0.3.0.2"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/Local/share/doc/ghc/html/libraries/array-0.3.0.2/array.haddock"], haddockHTMLs = ["/home/hugo/Local/share/doc/ghc/html/libraries/array-0.3.0.2"]}])]),(PackageName "base",fromList [(Version {versionBranch = [4,3,1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,3,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains the Prelude and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.", category = "", exposed = True, exposedModules = [ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Classes"],ModuleName ["GHC","Conc"],ModuleName ["GHC","Conc","IO"],ModuleName ["GHC","Conc","Signal"],ModuleName ["GHC","Conc","Sync"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Constants"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Float"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","MVar"],ModuleName ["GHC","IO"],ModuleName ["GHC","IO","IOMode"],ModuleName ["GHC","IO","Buffer"],ModuleName ["GHC","IO","Device"],ModuleName ["GHC","IO","BufferedIO"],ModuleName ["GHC","IO","FD"],ModuleName ["GHC","IO","Exception"],ModuleName ["GHC","IO","Encoding"],ModuleName ["GHC","IO","Encoding","Latin1"],ModuleName ["GHC","IO","Encoding","UTF8"],ModuleName ["GHC","IO","Encoding","UTF16"],ModuleName ["GHC","IO","Encoding","UTF32"],ModuleName ["GHC","IO","Encoding","Types"],ModuleName ["GHC","IO","Encoding","Iconv"],ModuleName ["GHC","IO","Encoding","CodePage"],ModuleName ["GHC","IO","Handle"],ModuleName ["GHC","IO","Handle","Types"],ModuleName ["GHC","IO","Handle","Internals"],ModuleName ["GHC","IO","Handle","FD"],ModuleName ["GHC","IO","Handle","Text"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IORef"],ModuleName ["GHC","IOArray"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","STRef"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["System","Event"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Exception","Base"],ModuleName ["Control","OldException"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Data"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","Functor"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [ModuleName ["System","Event","Array"],ModuleName ["System","Event","Clock"],ModuleName ["System","Event","Control"],ModuleName ["System","Event","EPoll"],ModuleName ["System","Event","IntMap"],ModuleName ["System","Event","Internal"],ModuleName ["System","Event","KQueue"],ModuleName ["System","Event","Manager"],ModuleName ["System","Event","PSQ"],ModuleName ["System","Event","Poll"],ModuleName ["System","Event","Thread"],ModuleName ["System","Event","Unique"]], importDirs = ["/home/hugo/Local/lib/ghc-7.0.3/base-4.3.1.0"], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3/base-4.3.1.0"], hsLibraries = ["HSbase-4.3.1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/home/hugo/Local/lib/ghc-7.0.3/base-4.3.1.0/include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.2.0.0-d9df11f804556f362beb0ea4e67261ba",InstalledPackageId "integer-gmp-0.2.0.3-4908241a60353d401d28868826ecd015",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/Local/share/doc/ghc/html/libraries/base-4.3.1.0/base.haddock"], haddockHTMLs = ["/home/hugo/Local/share/doc/ghc/html/libraries/base-4.3.1.0"]}])]),(PackageName "containers",fromList [(Version {versionBranch = [0,4,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "containers-0.4.0.0-8781485edb2ac0db733a9f9c72e27945", sourcePackageId = PackageIdentifier {pkgName = PackageName "containers", pkgVersion = Version {versionBranch = [0,4,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains efficient general-purpose implementations\nof various basic immutable container types. The declared cost of\neach operation is either worst-case or amortized, but remains\nvalid even if structures are shared.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Graph"],ModuleName ["Data","Sequence"],ModuleName ["Data","Tree"],ModuleName ["Data","IntMap"],ModuleName ["Data","IntSet"],ModuleName ["Data","Map"],ModuleName ["Data","Set"]], hiddenModules = [], importDirs = ["/home/hugo/Local/lib/ghc-7.0.3/containers-0.4.0.0"], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3/containers-0.4.0.0"], hsLibraries = ["HScontainers-0.4.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.3.0.2-3444ee049e55c8df31a0796287f56a5e",InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/Local/share/doc/ghc/html/libraries/containers-0.4.0.0/containers.haddock"], haddockHTMLs = ["/home/hugo/Local/share/doc/ghc/html/libraries/containers-0.4.0.0"]}])]),(PackageName "data-default",fromList [(Version {versionBranch = [0,2,0,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "data-default-0.2.0.1-af7457a414bf8afe6d487bc4398590fa", sourcePackageId = PackageIdentifier {pkgName = PackageName "data-default", pkgVersion = Version {versionBranch = [0,2,0,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "<l.mai@web.de>", author = "Lukas Mai", stability = "", homepage = "", pkgUrl = "", description = "", category = "Data", exposed = True, exposedModules = [ModuleName ["Data","Default"]], hiddenModules = [], importDirs = ["/home/hugo/.cabal/lib/data-default-0.2.0.1/ghc-7.0.3"], libraryDirs = ["/home/hugo/.cabal/lib/data-default-0.2.0.1/ghc-7.0.3"], hsLibraries = ["HSdata-default-0.2.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20",InstalledPackageId "containers-0.4.0.0-8781485edb2ac0db733a9f9c72e27945"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/.cabal/share/doc/data-default-0.2.0.1/html/data-default.haddock"], haddockHTMLs = ["/home/hugo/.cabal/share/doc/data-default-0.2.0.1/html"]}])]),(PackageName "ffi",fromList [(Version {versionBranch = [1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_ffi", sourcePackageId = PackageIdentifier {pkgName = PackageName "ffi", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3"], hsLibraries = ["HSffi"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/home/hugo/Local/lib/ghc-7.0.3/include"], includes = [], depends = [], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}])]),(PackageName "ghc-prim",fromList [(Version {versionBranch = [0,2,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.2.0.0-d9df11f804556f362beb0ea4e67261ba", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,2,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Bool"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Generics"],ModuleName ["GHC","Magic"],ModuleName ["GHC","Ordering"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord32"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"],ModuleName ["GHC","Unit"]], hiddenModules = [], importDirs = ["/home/hugo/Local/lib/ghc-7.0.3/ghc-prim-0.2.0.0"], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3/ghc-prim-0.2.0.0"], hsLibraries = ["HSghc-prim-0.2.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/Local/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/ghc-prim.haddock"], haddockHTMLs = ["/home/hugo/Local/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0"]}])]),(PackageName "integer-gmp",fromList [(Version {versionBranch = [0,2,0,3], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.2.0.3-4908241a60353d401d28868826ecd015", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,2,0,3], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "This package contains an Integer library based on GMP.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Integer"],ModuleName ["GHC","Integer","GMP","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], importDirs = ["/home/hugo/Local/lib/ghc-7.0.3/integer-gmp-0.2.0.3"], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3/integer-gmp-0.2.0.3"], hsLibraries = ["HSinteger-gmp-0.2.0.3"], extraLibraries = ["gmp"], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "ghc-prim-0.2.0.0-d9df11f804556f362beb0ea4e67261ba"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/Local/share/doc/ghc/html/libraries/integer-gmp-0.2.0.3/integer-gmp.haddock"], haddockHTMLs = ["/home/hugo/Local/share/doc/ghc/html/libraries/integer-gmp-0.2.0.3"]}])]),(PackageName "primitive",fromList [(Version {versionBranch = [0,3,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "primitive-0.3.1-8254baf92d822508a6aa7805b8b44531", sourcePackageId = PackageIdentifier {pkgName = PackageName "primitive", pkgVersion = Version {versionBranch = [0,3,1], versionTags = []}}, license = BSD3, copyright = "(c) Roman Leshchinskiy 2009-2010", maintainer = "Roman Leshchinskiy <rl@cse.unsw.edu.au>", author = "Roman Leshchinskiy <rl@cse.unsw.edu.au>", stability = "", homepage = "http://code.haskell.org/primitive", pkgUrl = "", description = ".\nThis package provides wrappers for primitive array operations from\nGHC.Prim.", category = "Data", exposed = True, exposedModules = [ModuleName ["Control","Monad","Primitive"],ModuleName ["Data","Primitive"],ModuleName ["Data","Primitive","MachDeps"],ModuleName ["Data","Primitive","Types"],ModuleName ["Data","Primitive","Array"],ModuleName ["Data","Primitive","ByteArray"],ModuleName ["Data","Primitive","Addr"]], hiddenModules = [], importDirs = ["/home/hugo/.cabal/lib/primitive-0.3.1/ghc-7.0.3"], libraryDirs = ["/home/hugo/.cabal/lib/primitive-0.3.1/ghc-7.0.3"], hsLibraries = ["HSprimitive-0.3.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/home/hugo/.cabal/lib/primitive-0.3.1/ghc-7.0.3/include"], includes = ["primitive-memops.h"], depends = [InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20",InstalledPackageId "ghc-prim-0.2.0.0-d9df11f804556f362beb0ea4e67261ba"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/.cabal/share/doc/primitive-0.3.1/html/primitive.haddock"], haddockHTMLs = ["/home/hugo/.cabal/share/doc/primitive-0.3.1/html"]}])]),(PackageName "rts",fromList [(Version {versionBranch = [1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_rts", sourcePackageId = PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], importDirs = [], libraryDirs = ["/home/hugo/Local/lib/ghc-7.0.3"], hsLibraries = ["HSrts"], extraLibraries = ["m","rt","dl"], extraGHCiLibraries = [], includeDirs = ["/home/hugo/Local/lib/ghc-7.0.3/include"], includes = ["Stg.h"], depends = [InstalledPackageId "builtin_ffi"], hugsOptions = [], ccOptions = [], ldOptions = ["-u","ghczmprim_GHCziTypes_Izh_static_info","-u","ghczmprim_GHCziTypes_Czh_static_info","-u","ghczmprim_GHCziTypes_Fzh_static_info","-u","ghczmprim_GHCziTypes_Dzh_static_info","-u","base_GHCziPtr_Ptr_static_info","-u","base_GHCziWord_Wzh_static_info","-u","base_GHCziInt_I8zh_static_info","-u","base_GHCziInt_I16zh_static_info","-u","base_GHCziInt_I32zh_static_info","-u","base_GHCziInt_I64zh_static_info","-u","base_GHCziWord_W8zh_static_info","-u","base_GHCziWord_W16zh_static_info","-u","base_GHCziWord_W32zh_static_info","-u","base_GHCziWord_W64zh_static_info","-u","base_GHCziStable_StablePtr_static_info","-u","ghczmprim_GHCziTypes_Izh_con_info","-u","ghczmprim_GHCziTypes_Czh_con_info","-u","ghczmprim_GHCziTypes_Fzh_con_info","-u","ghczmprim_GHCziTypes_Dzh_con_info","-u","base_GHCziPtr_Ptr_con_info","-u","base_GHCziPtr_FunPtr_con_info","-u","base_GHCziStable_StablePtr_con_info","-u","ghczmprim_GHCziBool_False_closure","-u","ghczmprim_GHCziBool_True_closure","-u","base_GHCziPack_unpackCString_closure","-u","base_GHCziIOziException_stackOverflow_closure","-u","base_GHCziIOziException_heapOverflow_closure","-u","base_ControlziExceptionziBase_nonTermination_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","base_ControlziExceptionziBase_nestedAtomically_closure","-u","base_GHCziWeak_runFinalizzerBatch_closure","-u","base_GHCziTopHandler_runIO_closure","-u","base_GHCziTopHandler_runNonIO_closure","-u","base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","base_GHCziConcziSync_runSparks_closure","-u","base_GHCziConcziSignal_runHandlers_closure"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}])]),(PackageName "vector",fromList [(Version {versionBranch = [0,7,0,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "vector-0.7.0.1-3a18a3c369c7e19a25c6ed8559ed6128", sourcePackageId = PackageIdentifier {pkgName = PackageName "vector", pkgVersion = Version {versionBranch = [0,7,0,1], versionTags = []}}, license = BSD3, copyright = "(c) Roman Leshchinskiy 2008-2010", maintainer = "Roman Leshchinskiy <rl@cse.unsw.edu.au>", author = "Roman Leshchinskiy <rl@cse.unsw.edu.au>", stability = "", homepage = "http://code.haskell.org/vector", pkgUrl = "", description = ".\nAn efficient implementation of Int-indexed arrays (both mutable\nand immutable), with a powerful loop fusion optimization framework .\n\nIt is structured as follows:\n\n[@Data.Vector@] Boxed vectors of arbitrary types.\n\n[@Data.Vector.Unboxed@] Unboxed vectors with an adaptive\nrepresentation based on data type families.\n\n[@Data.Vector.Storable@] Unboxed vectors of 'Storable' types.\n\n[@Data.Vector.Primitive@] Unboxed vectors of primitive types as\ndefined by the @primitive@ package. @Data.Vector.Unboxed@ is more\nflexible at no performance cost.\n\n[@Data.Vector.Generic@] Generic interface to the vector types.\n\nThere is also a (draft) tutorial on common uses of vector.\n\n* <http://haskell.org/haskellwiki/Numeric_Haskell:_A_Vector_Tutorial>\n\nPlease use the project trac to submit bug reports and feature\nrequests.\n\n* <http://trac.haskell.org/vector>\n\nChanges in version 0.7.0.1\n\n* Dependency on package ghc removed\n\nChanges in version 0.7\n\n* New functions for freezing, copying and thawing vectors: @freeze@,\n@thaw@, @unsafeThaw@ and @clone@\n\n* @newWith@ and @newUnsafeWith@ on mutable vectors replaced by\n@replicate@\n\n* New function: @concat@\n\n* New function for safe indexing: @(!?)@\n\n* @Monoid@ instances for all vector types\n\n* Significant recycling and fusion improvements\n\n* Bug fixes\n\n* Support for GHC 7.0", category = "Data, Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Vector","Internal","Check"],ModuleName ["Data","Vector","Fusion","Util"],ModuleName ["Data","Vector","Fusion","Stream","Size"],ModuleName ["Data","Vector","Fusion","Stream","Monadic"],ModuleName ["Data","Vector","Fusion","Stream"],ModuleName ["Data","Vector","Generic","Mutable"],ModuleName ["Data","Vector","Generic","Base"],ModuleName ["Data","Vector","Generic","New"],ModuleName ["Data","Vector","Generic"],ModuleName ["Data","Vector","Primitive","Mutable"],ModuleName ["Data","Vector","Primitive"],ModuleName ["Data","Vector","Storable","Internal"],ModuleName ["Data","Vector","Storable","Mutable"],ModuleName ["Data","Vector","Storable"],ModuleName ["Data","Vector","Unboxed","Base"],ModuleName ["Data","Vector","Unboxed","Mutable"],ModuleName ["Data","Vector","Unboxed"],ModuleName ["Data","Vector","Mutable"],ModuleName ["Data","Vector"]], hiddenModules = [], importDirs = ["/home/hugo/.cabal/lib/vector-0.7.0.1/ghc-7.0.3"], libraryDirs = ["/home/hugo/.cabal/lib/vector-0.7.0.1/ghc-7.0.3"], hsLibraries = ["HSvector-0.7.0.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/home/hugo/.cabal/lib/vector-0.7.0.1/ghc-7.0.3/include"], includes = [], depends = [InstalledPackageId "base-4.3.1.0-1554f26e1cc1c87f47464e927dddbd20",InstalledPackageId "primitive-0.3.1-8254baf92d822508a6aa7805b8b44531"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/hugo/.cabal/share/doc/vector-0.7.0.1/html/vector.haddock"], haddockHTMLs = ["/home/hugo/.cabal/share/doc/vector-0.7.0.1/html"]}])])]), pkgDescrFile = Just "./Noise.cabal", localPkgDescr = PackageDescription {package = PackageIdentifier {pkgName = PackageName "Noise", pkgVersion = Version {versionBranch = [0,0,1], versionTags = []}}, license = BSD3, licenseFile = "LICENSE", copyright = "", maintainer = "Hugo Daniel <hugodaniel@hackological.com>", author = "", stability = "", testedWith = [], homepage = "", pkgUrl = "", bugReports = "", sourceRepos = [], synopsis = "A Haskell coherent noise generator", description = "A Haskell coherent noise generator roughly based on libnoise.\nFor more information on libnoise, please check: <http://libnoise.sourceforge.net>.\n\nThe noise modules were extensively profiled and benchmarked,\nthe slower pure functions were rewritten in C.\nThe main objective of this packer is to provide a simple interface\nto compose noise modules.\n\nYou could compose several noise modules like this:\n\n> myPerlin = perlin `isSourceOf` scalebias\nscale = 1.0\n`isSourceOf` absolute\n> myComposition = perlin\nperlinFrequency = 0.123\n`andModule` billow\nbillowOctaves = 12\n`andModule` myPerlin\n`areSourcesOf`\nselect\nupperBound = 0.7, lowerBound = 0.2\n\nThis is a 3D noise package, to get a value you need to specify a\ntriple:\n\n> getValue myComposition (-0.1, -0.5, 0.76)\n\nFor more information please read the documentation of each module\nbellow.", category = "Math", customFieldsPD = [], buildDepends = [Dependency (PackageName "array") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,3,0,2], versionTags = []}))),Dependency (PackageName "base") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [4], versionTags = []})) (LaterVersion (Version {versionBranch = [4], versionTags = []}))) (ThisVersion (Version {versionBranch = [4,3,1,0], versionTags = []}))),Dependency (PackageName "data-default") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,2,0,1], versionTags = []}))),Dependency (PackageName "vector") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,7,0,1], versionTags = []})))], specVersionRaw = Right (UnionVersionRanges (ThisVersion (Version {versionBranch = [1,6], versionTags = []})) (LaterVersion (Version {versionBranch = [1,6], versionTags = []}))), buildType = Just Simple, library = Just (Library {exposedModules = [ModuleName ["Math","Noise"],ModuleName ["Math","Noise","NoiseGen"],ModuleName ["Math","Noise","NoiseModule"],ModuleName ["Math","Noise","Modules","Abs"],ModuleName ["Math","Noise","Modules","Billow"],ModuleName ["Math","Noise","Modules","Perlin"],ModuleName ["Math","Noise","Modules","Select"],ModuleName ["Math","Noise","Modules","ScaleBias"]], libExposed = True, libBuildInfo = BuildInfo {buildable = True, buildTools = [], cppOptions = [], ccOptions = [], ldOptions = [], pkgconfigDepends = [], frameworks = [], cSources = ["Math/Noise/noisegen.c","Math/Noise/Modules/perlin.c"], hsSourceDirs = ["."], otherModules = [ModuleName ["Math","Noise","Interpolation"],ModuleName ["Math","Noise","VectorTable"]], defaultLanguage = Nothing, otherLanguages = [], defaultExtensions = [], otherExtensions = [], oldExtensions = [BangPatterns], extraLibs = [], extraLibDirs = [], includeDirs = ["Math/Noise","Math/Noise/Modules"], includes = [], installIncludes = [], options = [(GHC,["-O2","-funbox-strict-fields"])], ghcProfOptions = [], ghcSharedOptions = [], customFieldsBI = [], targetBuildDepends = [Dependency (PackageName "array") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,3,0,2], versionTags = []}))),Dependency (PackageName "base") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [4], versionTags = []})) (LaterVersion (Version {versionBranch = [4], versionTags = []}))) (ThisVersion (Version {versionBranch = [4,3,1,0], versionTags = []}))),Dependency (PackageName "data-default") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,2,0,1], versionTags = []}))),Dependency (PackageName "vector") (IntersectVersionRanges AnyVersion (ThisVersion (Version {versionBranch = [0,7,0,1], versionTags = []})))]}}), executables = [], testSuites = [], dataFiles = [], dataDir = "", extraSrcFiles = ["README.txt","Math/Noise/common.h","Math/Noise/noisegen.h","Math/Noise/Modules/perlin.h"], extraTmpFiles = []}, withPrograms = [("alex",ConfiguredProgram {programId = "alex", programVersion = Just (Version {versionBranch = [2,3,5], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/home/hugo/.cabal/bin/alex"}}),("ar",ConfiguredProgram {programId = "ar", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ar"}}),("c2hs",ConfiguredProgram {programId = "c2hs", programVersion = Just (Version {versionBranch = [0,16,3], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/home/hugo/.cabal/bin/c2hs"}}),("cpphs",ConfiguredProgram {programId = "cpphs", programVersion = Just (Version {versionBranch = [1,11], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/home/hugo/.cabal/bin/cpphs"}}),("gcc",ConfiguredProgram {programId = "gcc", programVersion = Just (Version {versionBranch = [4,6,0], versionTags = []}), programDefaultArgs = ["-fno-stack-protector"], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/gcc"}}),("ghc",ConfiguredProgram {programId = "ghc", programVersion = Just (Version {versionBranch = [7,0,3], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/home/hugo/Local/bin/ghc"}}),("ghc-pkg",ConfiguredProgram {programId = "ghc-pkg", programVersion = Just (Version {versionBranch = [7,0,3], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/home/hugo/Local/bin/ghc-pkg"}}),("haddock",ConfiguredProgram {programId = "haddock", programVersion = Just (Version {versionBranch = [2,9,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/home/hugo/Local/bin/haddock"}}),("happy",ConfiguredProgram {programId = "happy", programVersion = Just (Version {versionBranch = [1,18,6], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/home/hugo/.cabal/bin/happy"}}),("hsc2hs",ConfiguredProgram {programId = "hsc2hs", programVersion = Just (Version {versionBranch = [0,67], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/home/hugo/Local/bin/hsc2hs"}}),("ld",ConfiguredProgram {programId = "ld", programVersion = Nothing, programDefaultArgs = ["-x"], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ld"}}),("pkg-config",ConfiguredProgram {programId = "pkg-config", programVersion = Just (Version {versionBranch = [0,25], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/pkg-config"}}),("ranlib",ConfiguredProgram {programId = "ranlib", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ranlib"}}),("strip",ConfiguredProgram {programId = "strip", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/strip"}}),("tar",ConfiguredProgram {programId = "tar", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/bin/tar"}})], withPackageDB = [GlobalPackageDB,UserPackageDB], withVanillaLib = True, withProfLib = False, withSharedLib = False, withProfExe = False, withOptimization = NormalOptimisation, withGHCiLib = True, splitObjs = False, stripExes = True, progPrefix = "", progSuffix = ""}
@@ -0,0 +1,504 @@+ GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + +
@@ -0,0 +1,34 @@+Installing libnoise: + +1. Make! + +CXXFLAGS='-O3 -fomit-frame-pointer ...options of choice...' make + +Using compiler optimizations for libnoise is *strongly recommended*. Using the +unoptimized library is roughly a fifth as fast as using -O3 on my test +computer. + +2. Install! + +The 'include' directory should be copied to your software include directory, +usually /usr/local/include, with an appropriate name. I use + + cp -R include /usr/local/include/noise + +Similarly, the *contents* of the 'lib' directory should go into your library +directory (usually /usr/local/lib). Once you've done that, run 'ldconfig', +then make a symlink from LIBDIR/libnoise.so to LIBDIR/libnoise.so.0. I use: + + cp lib/* /usr/local/lib + ldconfig + ln -s /usr/local/lib/libnoise.so.0 /usr/local/lib/libnoise.so + +At this point, you should be able to include libnoise in your projects using + + #include <noise/noise.h> + +and + + g++ ...options... -lnoise + +At some point we'll automate this process.
@@ -0,0 +1,23 @@+.PHONY: all doc src include +all: doc src include lib +clean: cleandoc cleansrc cleaninclude cleanlib +install: installinclude installlib + +doc src include lib: + $(MAKE) -C $@ + +lib: include + +cleandoc: + $(MAKE) -C doc clean +cleansrc: + $(MAKE) -C src clean +cleaninclude: + $(MAKE) -C include clean +cleanlib: + $(MAKE) -C lib clean + +installinclude: + $(MAKE) -C include include +installlib: + $(MAKE) -C lib include
@@ -0,0 +1,215 @@+# Doxyfile 1.3.9.1++#---------------------------------------------------------------------------+# Project related configuration options+#---------------------------------------------------------------------------+PROJECT_NAME = libnoise+PROJECT_NUMBER = 0.9.0+OUTPUT_DIRECTORY = .+CREATE_SUBDIRS = NO+OUTPUT_LANGUAGE = English+USE_WINDOWS_ENCODING = YES+BRIEF_MEMBER_DESC = YES+REPEAT_BRIEF = YES+ABBREVIATE_BRIEF = +ALWAYS_DETAILED_SEC = NO+INLINE_INHERITED_MEMB = NO+FULL_PATH_NAMES = NO+STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO+JAVADOC_AUTOBRIEF = YES+MULTILINE_CPP_IS_BRIEF = NO+DETAILS_AT_TOP = YES+INHERIT_DOCS = YES+DISTRIBUTE_GROUP_DOC = NO+TAB_SIZE = 2+ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO+OPTIMIZE_OUTPUT_JAVA = NO+SUBGROUPING = YES+#---------------------------------------------------------------------------+# Build related configuration options+#---------------------------------------------------------------------------+EXTRACT_ALL = NO+EXTRACT_PRIVATE = NO+EXTRACT_STATIC = NO+EXTRACT_LOCAL_CLASSES = NO+EXTRACT_LOCAL_METHODS = NO+HIDE_UNDOC_MEMBERS = NO+HIDE_UNDOC_CLASSES = NO+HIDE_FRIEND_COMPOUNDS = NO+HIDE_IN_BODY_DOCS = NO+INTERNAL_DOCS = NO+CASE_SENSE_NAMES = YES+HIDE_SCOPE_NAMES = NO+SHOW_INCLUDE_FILES = YES+INLINE_INFO = YES+SORT_MEMBER_DOCS = YES+SORT_BRIEF_DOCS = NO+SORT_BY_SCOPE_NAME = NO+GENERATE_TODOLIST = YES+GENERATE_TESTLIST = YES+GENERATE_BUGLIST = YES+GENERATE_DEPRECATEDLIST= YES+ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30+SHOW_USED_FILES = YES+SHOW_DIRECTORIES = YES+#---------------------------------------------------------------------------+# configuration options related to warning and progress messages+#---------------------------------------------------------------------------+QUIET = NO+WARNINGS = YES+WARN_IF_UNDOCUMENTED = YES+WARN_IF_DOC_ERROR = YES+WARN_FORMAT = "$file:$line: $text"+WARN_LOGFILE = +#---------------------------------------------------------------------------+# configuration options related to the input files+#---------------------------------------------------------------------------+INPUT = ../src/+FILE_PATTERNS = *.cpp \+ *.h+RECURSIVE = YES+EXCLUDE = +EXCLUDE_SYMLINKS = NO+EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO+IMAGE_PATH = img/+INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO+#---------------------------------------------------------------------------+# configuration options related to source browsing+#---------------------------------------------------------------------------+SOURCE_BROWSER = NO+INLINE_SOURCES = NO+STRIP_CODE_COMMENTS = YES+REFERENCED_BY_RELATION = YES+REFERENCES_RELATION = YES+VERBATIM_HEADERS = YES+#---------------------------------------------------------------------------+# configuration options related to the alphabetical class index+#---------------------------------------------------------------------------+ALPHABETICAL_INDEX = NO+COLS_IN_ALPHA_INDEX = 5+IGNORE_PREFIX = +#---------------------------------------------------------------------------+# configuration options related to the HTML output+#---------------------------------------------------------------------------+GENERATE_HTML = YES+HTML_OUTPUT = html+HTML_FILE_EXTENSION = .html+HTML_HEADER = htmldata/templateheader.html+HTML_FOOTER = htmldata/templatefooter.html+HTML_STYLESHEET = htmldata/doxygen.css+HTML_ALIGN_MEMBERS = YES+GENERATE_HTMLHELP = NO+CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO+BINARY_TOC = NO+TOC_EXPAND = NO+DISABLE_INDEX = NO+ENUM_VALUES_PER_LINE = 8+GENERATE_TREEVIEW = NO+TREEVIEW_WIDTH = 250+#---------------------------------------------------------------------------+# configuration options related to the LaTeX output+#---------------------------------------------------------------------------+GENERATE_LATEX = NO+LATEX_OUTPUT = latex+LATEX_CMD_NAME = latex+MAKEINDEX_CMD_NAME = makeindex+COMPACT_LATEX = NO+PAPER_TYPE = a4wide+EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO+USE_PDFLATEX = NO+LATEX_BATCHMODE = NO+LATEX_HIDE_INDICES = NO+#---------------------------------------------------------------------------+# configuration options related to the RTF output+#---------------------------------------------------------------------------+GENERATE_RTF = NO+RTF_OUTPUT = rtf+COMPACT_RTF = NO+RTF_HYPERLINKS = NO+RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#---------------------------------------------------------------------------+# configuration options related to the man page output+#---------------------------------------------------------------------------+GENERATE_MAN = NO+MAN_OUTPUT = man+MAN_EXTENSION = .3+MAN_LINKS = NO+#---------------------------------------------------------------------------+# configuration options related to the XML output+#---------------------------------------------------------------------------+GENERATE_XML = NO+XML_OUTPUT = xml+XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES+#---------------------------------------------------------------------------+# configuration options for the AutoGen Definitions output+#---------------------------------------------------------------------------+GENERATE_AUTOGEN_DEF = NO+#---------------------------------------------------------------------------+# configuration options related to the Perl module output+#---------------------------------------------------------------------------+GENERATE_PERLMOD = NO+PERLMOD_LATEX = NO+PERLMOD_PRETTY = YES+PERLMOD_MAKEVAR_PREFIX = +#---------------------------------------------------------------------------+# Configuration options related to the preprocessor +#---------------------------------------------------------------------------+ENABLE_PREPROCESSING = YES+MACRO_EXPANSION = NO+EXPAND_ONLY_PREDEF = NO+SEARCH_INCLUDES = NO+INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS+EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES+#---------------------------------------------------------------------------+# Configuration::additions related to external references +#---------------------------------------------------------------------------+TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO+EXTERNAL_GROUPS = YES+PERL_PATH = /usr/bin/perl+#---------------------------------------------------------------------------+# Configuration options related to the dot tool +#---------------------------------------------------------------------------+CLASS_DIAGRAMS = YES+HIDE_UNDOC_RELATIONS = YES+HAVE_DOT = NO+CLASS_GRAPH = YES+COLLABORATION_GRAPH = YES+UML_LOOK = NO+TEMPLATE_RELATIONS = YES+INCLUDE_GRAPH = YES+INCLUDED_BY_GRAPH = YES+CALL_GRAPH = NO+GRAPHICAL_HIERARCHY = YES+DOT_IMAGE_FORMAT = png+DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 1024+MAX_DOT_GRAPH_HEIGHT = 1024+MAX_DOT_GRAPH_DEPTH = 0+GENERATE_LEGEND = YES+DOT_CLEANUP = YES+#---------------------------------------------------------------------------+# Configuration::additions related to the search engine +#---------------------------------------------------------------------------+SEARCHENGINE = NO
@@ -0,0 +1,14 @@+# Also include the core source directory +include ../src/Sources + +# Various binaries we're using +DOXYGEN=`which doxygen` + +# Source code files + +html: Doxyfile $(HEADERS) + $(DOXYGEN) Doxyfile + +.PHONY: clean +clean: + -rm -rf html
@@ -0,0 +1,181 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>abs.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// abs.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_ABS_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_ABS_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module {+00032 +00035 +00038 +00042 +<a name="l00049"></a><a class="code" href="classnoise_1_1module_1_1Abs.html">00049</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Abs.html">Abs</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00050 {+00051 +00052 <span class="keyword">public</span>:+00053 +00055 <a class="code" href="classnoise_1_1module_1_1Abs.html">Abs</a> ();+00056 +<a name="l00057"></a><a class="code" href="classnoise_1_1module_1_1Abs.html#a1">00057</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00058 <span class="keyword"> </span>{+00059 <span class="keywordflow">return</span> 1;+00060 }+00061 +00062 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00063 +00064 };+00065 +00067 +00069 +00071 +00072 }+00073 +00074 }+00075 +00076 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>add.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// add.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_ADD_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_ADD_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00043 +<a name="l00050"></a><a class="code" href="classnoise_1_1module_1_1Add.html">00050</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Add.html">Add</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00051 {+00052 +00053 <span class="keyword">public</span>:+00054 +00056 <a class="code" href="classnoise_1_1module_1_1Add.html">Add</a> ();+00057 +<a name="l00058"></a><a class="code" href="classnoise_1_1module_1_1Add.html#a1">00058</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00059 <span class="keyword"> </span>{+00060 <span class="keywordflow">return</span> 2;+00061 }+00062 +00063 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00064 +00065 };+00066 +00068 +00070 +00072 +00073 }+00074 +00075 }+00076 +00077 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,161 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindexHL" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>libnoise Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Abs.html">noise::module::Abs</a></td><td class="indexvalue">Noise module that outputs the absolute value of the output value from a source module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Add.html">noise::module::Add</a></td><td class="indexvalue">Noise module that outputs the sum of the two output values from two source modules </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td class="indexvalue">Noise module that outputs three-dimensional "billowy" noise </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Blend.html">noise::module::Blend</a></td><td class="indexvalue">Noise module that outputs a weighted blend of the output values from two source modules given the output value supplied by a control module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a></td><td class="indexvalue">Noise module that caches the last output value generated by a source module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Checkerboard.html">noise::module::Checkerboard</a></td><td class="indexvalue">Noise module that outputs a checkerboard pattern </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a></td><td class="indexvalue">Noise module that clamps the output value from a source module to a range of values </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a></td><td class="indexvalue">Noise module that outputs a constant value </td></tr>+ <tr><td class="indexkey"><a class="el" href="structnoise_1_1module_1_1ControlPoint.html">noise::module::ControlPoint</a></td><td class="indexvalue">This structure defines a control point </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td class="indexvalue">Noise module that maps the output value from a source module onto an arbitrary function curve </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1model_1_1Cylinder.html">noise::model::Cylinder</a></td><td class="indexvalue">Model that defines the surface of a cylinder </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Cylinders.html">noise::module::Cylinders</a></td><td class="indexvalue">Noise module that outputs concentric cylinders </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td><td class="indexvalue">Noise module that uses three source modules to displace each coordinate of the input value before returning the output value from a source module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1Exception.html">noise::Exception</a></td><td class="indexvalue">Abstract base class for libnoise exceptions </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1ExceptionInvalidParam.html">noise::ExceptionInvalidParam</a></td><td class="indexvalue">Invalid parameter exception </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1ExceptionNoModule.html">noise::ExceptionNoModule</a></td><td class="indexvalue">No module exception </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1ExceptionOutOfMemory.html">noise::ExceptionOutOfMemory</a></td><td class="indexvalue">Out of memory exception </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1ExceptionUnknown.html">noise::ExceptionUnknown</a></td><td class="indexvalue">Unknown exception </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Exponent.html">noise::module::Exponent</a></td><td class="indexvalue">Noise module that maps the output value from a source module onto an exponential curve </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Invert.html">noise::module::Invert</a></td><td class="indexvalue">Noise module that inverts the output value from a source module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a></td><td class="indexvalue">Model that defines the displacement of a line segment </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Max.html">noise::module::Max</a></td><td class="indexvalue">Noise module that outputs the larger of the two output values from two source modules </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Min.html">noise::module::Min</a></td><td class="indexvalue">Noise module that outputs the smaller of the two output values from two source modules </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td class="indexvalue">Abstract base class for noise modules </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Multiply.html">noise::module::Multiply</a></td><td class="indexvalue">Noise module that outputs the product of the two output values from two source modules </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td class="indexvalue">Noise module that outputs 3-dimensional <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1model_1_1Plane.html">noise::model::Plane</a></td><td class="indexvalue">Model that defines the surface of a plane </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Power.html">noise::module::Power</a></td><td class="indexvalue">Noise module that raises the output value from a first source module to the power of the output value from a second source module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td class="indexvalue">Noise module that outputs 3-dimensional ridged-multifractal noise </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td class="indexvalue">Noise module that rotates the input value around the origin before returning the output value from a source module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a></td><td class="indexvalue">Noise module that applies a scaling factor and a bias to the output value from a source module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td class="indexvalue">Noise module that scales the coordinates of the input value before returning the output value from a source module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td class="indexvalue">Noise module that outputs the value selected from one of two source modules chosen by the output value from a control module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1model_1_1Sphere.html">noise::model::Sphere</a></td><td class="indexvalue">Model that defines the surface of a sphere </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Spheres.html">noise::module::Spheres</a></td><td class="indexvalue">Noise module that outputs concentric spheres </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td class="indexvalue">Noise module that maps the output value from a source module onto a terrace-forming curve </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td class="indexvalue">Noise module that moves the coordinates of the input value before returning the output value from a source module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td class="indexvalue">Noise module that randomly displaces the input value before returning the output value from a source module </td></tr>+ <tr><td class="indexkey"><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td class="indexvalue">Noise module that outputs <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells </td></tr>+</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 187 bytes)
@@ -0,0 +1,171 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a></div>+<h1>basictypes.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// basictypes.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_BASICTYPES_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_BASICTYPES_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="comment">// You may need to modify these constants for your compiler or platform.</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00034 +<a name="l00036"></a><a class="code" href="group__libnoise.html#ga0">00036</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint;+00037 +<a name="l00039"></a><a class="code" href="group__libnoise.html#ga1">00039</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32;+00040 +<a name="l00042"></a><a class="code" href="group__libnoise.html#ga2">00042</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> uint16;+00043 +<a name="l00045"></a><a class="code" href="group__libnoise.html#ga3">00045</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> uint8;+00046 +<a name="l00048"></a><a class="code" href="group__libnoise.html#ga4">00048</a> <span class="keyword">typedef</span> <span class="keywordtype">int</span> int32;+00049 +<a name="l00051"></a><a class="code" href="group__libnoise.html#ga5">00051</a> <span class="keyword">typedef</span> <span class="keywordtype">short</span> int16;+00052 +<a name="l00054"></a><a class="code" href="group__libnoise.html#ga6">00054</a> <span class="keyword">typedef</span> <span class="keywordtype">char</span> int8;+00055 +00057 +00058 }+00059 +00060 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,273 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>billow.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// billow.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_BILLOW_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_BILLOW_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00044"></a><a class="code" href="group__generatormodules.html#ga0">00044</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_BILLOW_FREQUENCY = 1.0;+00045 +<a name="l00047"></a><a class="code" href="group__generatormodules.html#ga1">00047</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_BILLOW_LACUNARITY = 2.0;+00048 +<a name="l00051"></a><a class="code" href="group__generatormodules.html#ga2">00051</a> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_BILLOW_OCTAVE_COUNT = 6;+00052 +<a name="l00055"></a><a class="code" href="group__generatormodules.html#ga3">00055</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_BILLOW_PERSISTENCE = 0.5;+00056 +<a name="l00058"></a><a class="code" href="group__generatormodules.html#ga4">00058</a> <span class="keyword">const</span> noise::NoiseQuality DEFAULT_BILLOW_QUALITY = QUALITY_STD;+00059 +<a name="l00061"></a><a class="code" href="group__generatormodules.html#ga5">00061</a> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_BILLOW_SEED = 0;+00062 +<a name="l00065"></a><a class="code" href="group__generatormodules.html#ga6">00065</a> <span class="keyword">const</span> <span class="keywordtype">int</span> BILLOW_MAX_OCTAVE = 30;+00066 +<a name="l00078"></a><a class="code" href="classnoise_1_1module_1_1Billow.html">00078</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Billow.html">Billow</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00079 {+00080 +00081 <span class="keyword">public</span>:+00082 +00099 <a class="code" href="classnoise_1_1module_1_1Billow.html">Billow</a> ();+00100 +<a name="l00104"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a1">00104</a> <span class="keywordtype">double</span> GetFrequency ()<span class="keyword"> const</span>+00105 <span class="keyword"> </span>{+00106 <span class="keywordflow">return</span> m_frequency;+00107 }+00108 +<a name="l00115"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a2">00115</a> <span class="keywordtype">double</span> GetLacunarity ()<span class="keyword"> const</span>+00116 <span class="keyword"> </span>{+00117 <span class="keywordflow">return</span> m_lacunarity;+00118 }+00119 +<a name="l00126"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a3">00126</a> noise::NoiseQuality GetNoiseQuality ()<span class="keyword"> const</span>+00127 <span class="keyword"> </span>{+00128 <span class="keywordflow">return</span> m_noiseQuality;+00129 }+00130 +<a name="l00137"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a4">00137</a> <span class="keywordtype">int</span> GetOctaveCount ()<span class="keyword"> const</span>+00138 <span class="keyword"> </span>{+00139 <span class="keywordflow">return</span> m_octaveCount;+00140 }+00141 +<a name="l00147"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a5">00147</a> <span class="keywordtype">double</span> GetPersistence ()<span class="keyword"> const</span>+00148 <span class="keyword"> </span>{+00149 <span class="keywordflow">return</span> m_persistence;+00150 }+00151 +<a name="l00155"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a6">00155</a> <span class="keywordtype">int</span> GetSeed ()<span class="keyword"> const</span>+00156 <span class="keyword"> </span>{+00157 <span class="keywordflow">return</span> m_seed;+00158 }+00159 +<a name="l00160"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a7">00160</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00161 <span class="keyword"> </span>{+00162 <span class="keywordflow">return</span> 0;+00163 }+00164 +00165 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00166 +<a name="l00170"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a9">00170</a> <span class="keywordtype">void</span> SetFrequency (<span class="keywordtype">double</span> frequency)+00171 {+00172 m_frequency = frequency;+00173 }+00174 +<a name="l00184"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a10">00184</a> <span class="keywordtype">void</span> SetLacunarity (<span class="keywordtype">double</span> lacunarity)+00185 {+00186 m_lacunarity = lacunarity;+00187 }+00188 +<a name="l00195"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a11">00195</a> <span class="keywordtype">void</span> SetNoiseQuality (noise::NoiseQuality noiseQuality)+00196 {+00197 m_noiseQuality = noiseQuality;+00198 }+00199 +<a name="l00216"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a12">00216</a> <span class="keywordtype">void</span> SetOctaveCount (<span class="keywordtype">int</span> octaveCount)+00217 {+00218 <span class="keywordflow">if</span> (octaveCount < 1 || octaveCount > BILLOW_MAX_OCTAVE) {+00219 <span class="keywordflow">throw</span> <a class="code" href="classnoise_1_1ExceptionInvalidParam.html">noise::ExceptionInvalidParam</a> ();+00220 }+00221 m_octaveCount = octaveCount;+00222 }+00223 +<a name="l00232"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a13">00232</a> <span class="keywordtype">void</span> SetPersistence (<span class="keywordtype">double</span> persistence)+00233 {+00234 m_persistence = persistence;+00235 }+00236 +<a name="l00240"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#a14">00240</a> <span class="keywordtype">void</span> SetSeed (<span class="keywordtype">int</span> seed)+00241 {+00242 m_seed = seed;+00243 }+00244 +00245 <span class="keyword">protected</span>:+00246 +<a name="l00248"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#p0">00248</a> <span class="keywordtype">double</span> m_frequency;+00249 +<a name="l00251"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#p1">00251</a> <span class="keywordtype">double</span> m_lacunarity;+00252 +<a name="l00254"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#p2">00254</a> noise::NoiseQuality m_noiseQuality;+00255 +<a name="l00257"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#p3">00257</a> <span class="keywordtype">int</span> m_octaveCount;+00258 +<a name="l00260"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#p4">00260</a> <span class="keywordtype">double</span> m_persistence;+00261 +<a name="l00263"></a><a class="code" href="classnoise_1_1module_1_1Billow.html#p5">00263</a> <span class="keywordtype">int</span> m_seed;+00264 +00265 };+00266 +00268 +00270 +00272 +00273 }+00274 +00275 }+00276 +00277 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,196 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>blend.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// blend.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_BLEND_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_BLEND_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00043 +<a name="l00070"></a><a class="code" href="classnoise_1_1module_1_1Blend.html">00070</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Blend.html">Blend</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00071 {+00072 +00073 <span class="keyword">public</span>:+00074 +00076 <a class="code" href="classnoise_1_1module_1_1Blend.html">Blend</a> ();+00077 +<a name="l00093"></a><a class="code" href="classnoise_1_1module_1_1Blend.html#a1">00093</a> <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& GetControlModule ()<span class="keyword"> const</span>+00094 <span class="keyword"> </span>{+00095 <span class="keywordflow">if</span> (m_pSourceModule == NULL || m_pSourceModule[2] == NULL) {+00096 <span class="keywordflow">throw</span> <a class="code" href="classnoise_1_1ExceptionNoModule.html">noise::ExceptionNoModule</a> ();+00097 }+00098 <span class="keywordflow">return</span> *(m_pSourceModule[2]);+00099 }+00100 +<a name="l00101"></a><a class="code" href="classnoise_1_1module_1_1Blend.html#a2">00101</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00102 <span class="keyword"> </span>{+00103 <span class="keywordflow">return</span> 3;+00104 }+00105 +00106 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00107 +<a name="l00126"></a><a class="code" href="classnoise_1_1module_1_1Blend.html#a4">00126</a> <span class="keywordtype">void</span> SetControlModule (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& controlModule)+00127 {+00128 assert (m_pSourceModule != NULL);+00129 m_pSourceModule[2] = &controlModule;+00130 }+00131 +00132 };+00133 +00135 +00137 +00139 +00140 }+00141 +00142 }+00143 +00144 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,200 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>cache.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// cache.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_CACHE_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_CACHE_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00043 +<a name="l00067"></a><a class="code" href="classnoise_1_1module_1_1Cache.html">00067</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Cache.html">Cache</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00068 {+00069 +00070 <span class="keyword">public</span>:+00071 +00073 <a class="code" href="classnoise_1_1module_1_1Cache.html">Cache</a> ();+00074 +<a name="l00075"></a><a class="code" href="classnoise_1_1module_1_1Cache.html#a1">00075</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00076 <span class="keyword"> </span>{+00077 <span class="keywordflow">return</span> 1;+00078 }+00079 +00080 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00081 +<a name="l00082"></a><a class="code" href="classnoise_1_1module_1_1Cache.html#a3">00082</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetSourceModule (<span class="keywordtype">int</span> index, <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& sourceModule)+00083 {+00084 Module::SetSourceModule (index, sourceModule);+00085 m_isCached = <span class="keyword">false</span>;+00086 }+00087 +00088 <span class="keyword">protected</span>:+00089 +<a name="l00091"></a><a class="code" href="classnoise_1_1module_1_1Cache.html#p0">00091</a> <span class="keyword">mutable</span> <span class="keywordtype">double</span> m_cachedValue;+00092 +<a name="l00095"></a><a class="code" href="classnoise_1_1module_1_1Cache.html#p1">00095</a> <span class="keyword">mutable</span> <span class="keywordtype">double</span> m_isCached;+00096 +<a name="l00098"></a><a class="code" href="classnoise_1_1module_1_1Cache.html#p2">00098</a> <span class="keyword">mutable</span> <span class="keywordtype">double</span> m_xCache;+00099 +<a name="l00101"></a><a class="code" href="classnoise_1_1module_1_1Cache.html#p3">00101</a> <span class="keyword">mutable</span> <span class="keywordtype">double</span> m_yCache;+00102 +<a name="l00104"></a><a class="code" href="classnoise_1_1module_1_1Cache.html#p4">00104</a> <span class="keyword">mutable</span> <span class="keywordtype">double</span> m_zCache;+00105 +00106 };+00107 +00109 +00111 +00113 +00114 }+00115 +00116 }+00117 +00118 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>checkerboard.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// checkerboard.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_CHECKERBOARD_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_CHECKERBOARD_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00054"></a><a class="code" href="classnoise_1_1module_1_1Checkerboard.html">00054</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Checkerboard.html">Checkerboard</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00055 {+00056 +00057 <span class="keyword">public</span>:+00058 +00060 <a class="code" href="classnoise_1_1module_1_1Checkerboard.html">Checkerboard</a> ();+00061 +<a name="l00062"></a><a class="code" href="classnoise_1_1module_1_1Checkerboard.html#a1">00062</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00063 <span class="keyword"> </span>{+00064 <span class="keywordflow">return</span> 0;+00065 }+00066 +00067 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00068 +00069 };+00070 +00072 +00074 +00076 +00077 }+00078 +00079 }+00080 +00081 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,204 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>clamp.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// clamp.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_CLAMP_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_CLAMP_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00045"></a><a class="code" href="group__modifiermodules.html#ga0">00045</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_CLAMP_LOWER_BOUND = -1.0;+00046 +<a name="l00049"></a><a class="code" href="group__modifiermodules.html#ga1">00049</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_CLAMP_UPPER_BOUND = 1.0;+00050 +<a name="l00069"></a><a class="code" href="classnoise_1_1module_1_1Clamp.html">00069</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Clamp.html">Clamp</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00070 {+00071 +00072 <span class="keyword">public</span>:+00073 +00081 <a class="code" href="classnoise_1_1module_1_1Clamp.html">Clamp</a> ();+00082 +<a name="l00090"></a><a class="code" href="classnoise_1_1module_1_1Clamp.html#a1">00090</a> <span class="keywordtype">double</span> GetLowerBound ()<span class="keyword"> const</span>+00091 <span class="keyword"> </span>{+00092 <span class="keywordflow">return</span> m_lowerBound;+00093 }+00094 +<a name="l00095"></a><a class="code" href="classnoise_1_1module_1_1Clamp.html#a2">00095</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00096 <span class="keyword"> </span>{+00097 <span class="keywordflow">return</span> 1;+00098 }+00099 +<a name="l00107"></a><a class="code" href="classnoise_1_1module_1_1Clamp.html#a3">00107</a> <span class="keywordtype">double</span> GetUpperBound ()<span class="keyword"> const</span>+00108 <span class="keyword"> </span>{+00109 <span class="keywordflow">return</span> m_upperBound;+00110 }+00111 +00112 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00113 +00130 <span class="keywordtype">void</span> SetBounds (<span class="keywordtype">double</span> lowerBound, <span class="keywordtype">double</span> upperBound);+00131 +00132 <span class="keyword">protected</span>:+00133 +<a name="l00135"></a><a class="code" href="classnoise_1_1module_1_1Clamp.html#p0">00135</a> <span class="keywordtype">double</span> m_lowerBound;+00136 +<a name="l00138"></a><a class="code" href="classnoise_1_1module_1_1Clamp.html#p1">00138</a> <span class="keywordtype">double</span> m_upperBound;+00139 +00140 };+00141 +00143 +00145 +00147 +00148 }+00149 +00150 }+00151 +00152 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,141 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::Exception Class Reference<br>+<small>+[<a class="el" href="group__libnoise.html">libnoise</a>]</small>+</h1><code>#include <<a class="el" href="exception_8h-source.html">exception.h</a>></code>+<p>+<p>Inheritance diagram for noise::Exception:+<p><center><img src="classnoise_1_1Exception.png" usemap="#noise::Exception_map" border="0" alt=""></center>+<map name="noise::Exception_map">+<area href="classnoise_1_1ExceptionInvalidParam.html" alt="noise::ExceptionInvalidParam" shape="rect" coords="0,56,183,80">+<area href="classnoise_1_1ExceptionNoModule.html" alt="noise::ExceptionNoModule" shape="rect" coords="193,56,376,80">+<area href="classnoise_1_1ExceptionOutOfMemory.html" alt="noise::ExceptionOutOfMemory" shape="rect" coords="386,56,569,80">+<area href="classnoise_1_1ExceptionUnknown.html" alt="noise::ExceptionUnknown" shape="rect" coords="579,56,762,80">+</map>+<hr><a name="_details"></a><h2>Detailed Description</h2>+Abstract base class for libnoise exceptions. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+</table>+<hr>The documentation for this class was generated from the following file:<ul>+<li><a class="el" href="exception_8h-source.html">exception.h</a></ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 1229 bytes)
@@ -0,0 +1,140 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::ExceptionInvalidParam Class Reference<br>+<small>+[<a class="el" href="group__libnoise.html">libnoise</a>]</small>+</h1><code>#include <<a class="el" href="exception_8h-source.html">exception.h</a>></code>+<p>+<p>Inheritance diagram for noise::ExceptionInvalidParam:+<p><center><img src="classnoise_1_1ExceptionInvalidParam.png" usemap="#noise::ExceptionInvalidParam_map" border="0" alt=""></center>+<map name="noise::ExceptionInvalidParam_map">+<area href="classnoise_1_1Exception.html" alt="noise::Exception" shape="rect" coords="0,0,176,24">+</map>+<hr><a name="_details"></a><h2>Detailed Description</h2>+Invalid parameter exception. +<p>+An invalid parameter was passed to a libnoise function or method. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+</table>+<hr>The documentation for this class was generated from the following file:<ul>+<li><a class="el" href="exception_8h-source.html">exception.h</a></ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 518 bytes)
@@ -0,0 +1,142 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::ExceptionNoModule Class Reference<br>+<small>+[<a class="el" href="group__libnoise.html">libnoise</a>]</small>+</h1><code>#include <<a class="el" href="exception_8h-source.html">exception.h</a>></code>+<p>+<p>Inheritance diagram for noise::ExceptionNoModule:+<p><center><img src="classnoise_1_1ExceptionNoModule.png" usemap="#noise::ExceptionNoModule_map" border="0" alt=""></center>+<map name="noise::ExceptionNoModule_map">+<area href="classnoise_1_1Exception.html" alt="noise::Exception" shape="rect" coords="0,0,161,24">+</map>+<hr><a name="_details"></a><h2>Detailed Description</h2>+No module exception. +<p>+Could not retrieve a source module from a noise module.<p>+<dl compact><dt><b>Note:</b></dt><dd>If one or more required source modules were not connected to a specific noise module, and its GetValue() method was called, that method will raise a debug assertion instead of this exception. This is done for performance reasons. </dd></dl>++<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+</table>+<hr>The documentation for this class was generated from the following file:<ul>+<li><a class="el" href="exception_8h-source.html">exception.h</a></ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 500 bytes)
@@ -0,0 +1,140 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::ExceptionOutOfMemory Class Reference<br>+<small>+[<a class="el" href="group__libnoise.html">libnoise</a>]</small>+</h1><code>#include <<a class="el" href="exception_8h-source.html">exception.h</a>></code>+<p>+<p>Inheritance diagram for noise::ExceptionOutOfMemory:+<p><center><img src="classnoise_1_1ExceptionOutOfMemory.png" usemap="#noise::ExceptionOutOfMemory_map" border="0" alt=""></center>+<map name="noise::ExceptionOutOfMemory_map">+<area href="classnoise_1_1Exception.html" alt="noise::Exception" shape="rect" coords="0,0,183,24">+</map>+<hr><a name="_details"></a><h2>Detailed Description</h2>+Out of memory exception. +<p>+There was not enough memory to perform an action. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+</table>+<hr>The documentation for this class was generated from the following file:<ul>+<li><a class="el" href="exception_8h-source.html">exception.h</a></ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 527 bytes)
@@ -0,0 +1,140 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::ExceptionUnknown Class Reference<br>+<small>+[<a class="el" href="group__libnoise.html">libnoise</a>]</small>+</h1><code>#include <<a class="el" href="exception_8h-source.html">exception.h</a>></code>+<p>+<p>Inheritance diagram for noise::ExceptionUnknown:+<p><center><img src="classnoise_1_1ExceptionUnknown.png" usemap="#noise::ExceptionUnknown_map" border="0" alt=""></center>+<map name="noise::ExceptionUnknown_map">+<area href="classnoise_1_1Exception.html" alt="noise::Exception" shape="rect" coords="0,0,154,24">+</map>+<hr><a name="_details"></a><h2>Detailed Description</h2>+Unknown exception. +<p>+libnoise raised an unknown exception. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+</table>+<hr>The documentation for this class was generated from the following file:<ul>+<li><a class="el" href="exception_8h-source.html">exception.h</a></ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 477 bytes)
@@ -0,0 +1,126 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::model::Cylinder Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1model_1_1Cylinder.html">noise::model::Cylinder</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Cylinder.html#a0">Cylinder</a>()</td><td><a class="el" href="classnoise_1_1model_1_1Cylinder.html">noise::model::Cylinder</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Cylinder.html#a1">Cylinder</a>(const module::Module &module)</td><td><a class="el" href="classnoise_1_1model_1_1Cylinder.html">noise::model::Cylinder</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Cylinder.html#a2">GetModule</a>() const </td><td><a class="el" href="classnoise_1_1model_1_1Cylinder.html">noise::model::Cylinder</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Cylinder.html#a3">GetValue</a>(double angle, double height) const </td><td><a class="el" href="classnoise_1_1model_1_1Cylinder.html">noise::model::Cylinder</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Cylinder.html#a4">SetModule</a>(const module::Module &module)</td><td><a class="el" href="classnoise_1_1model_1_1Cylinder.html">noise::model::Cylinder</a></td><td><code> [inline]</code></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,312 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::model::Cylinder Class Reference<br>+<small>+[<a class="el" href="group__models.html">Models</a>]</small>+</h1><code>#include <<a class="el" href="cylinder_8h-source.html">cylinder.h</a>></code>+<p>+<a href="classnoise_1_1model_1_1Cylinder-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Model that defines the surface of a cylinder. +<p>+<div align="center">+<img src="modelcylinder.png" alt="modelcylinder.png">+</div>+<p>+This model returns an output value from a noise module given the coordinates of an input value located on the surface of a cylinder.<p>+To generate an output value, pass the (angle, height) coordinates of an input value to the <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a3">GetValue()</a> method.<p>+This model is useful for creating:<ul>+<li>seamless textures that can be mapped onto a cylinder</li></ul>+<p>+This cylinder has a radius of 1.0 unit and has infinite height. It is oriented along the <em>y</em> axis. Its center is located at the origin. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::model::Cylinder::Cylinder"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Cylinder.html#a0">Cylinder</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Cylinder.html#a1">Cylinder</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &module)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Cylinder.html#a2">GetModule</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the noise module that is used to generate the output values. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Cylinder.html#a3">GetValue</a> (double angle, double height) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the output value from the noise module given the (angle, height) coordinates of the specified input value located on the surface of the cylinder. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Cylinder.html#a4">SetModule</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &module)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the noise module that is used to generate the output values. <a href="#a4"></a><br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::model::Cylinder::Cylinder"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Cylinder::Cylinder </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>module</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>module</em> </td><td>The noise module that is used to generate the output values. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a2" doxytag="noise::model::Cylinder::GetModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a>& noise::model::Cylinder::GetModule </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the noise module that is used to generate the output values. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>A reference to the noise module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a4">SetModule()</a> method. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::model::Cylinder::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Cylinder::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>angle</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>height</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const</td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the output value from the noise module given the (angle, height) coordinates of the specified input value located on the surface of the cylinder. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>angle</em> </td><td>The angle around the cylinder's center, in degrees. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>height</em> </td><td>The height along the <em>y</em> axis.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value from the noise module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a4">SetModule()</a> method.</dd></dl>+This output value is generated by the noise module passed to the <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a4">SetModule()</a> method.<p>+This cylinder has a radius of 1.0 unit and has infinite height. It is oriented along the <em>y</em> axis. Its center is located at the origin. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::model::Cylinder::SetModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::model::Cylinder::SetModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>module</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the noise module that is used to generate the output values. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>module</em> </td><td>The noise module that is used to generate the output values.</td></tr>+ </table>+</dl>+This noise module must exist for the lifetime of this object, until you pass a new noise module to this method. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="cylinder_8h-source.html">cylinder.h</a><li>cylinder.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,130 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::model::Line Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Line.html#a2">GetAttenuate</a>() const </td><td><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Line.html#a3">GetModule</a>() const </td><td><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Line.html#a4">GetValue</a>(double p) const </td><td><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Line.html#a0">Line</a>()</td><td><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Line.html#a1">Line</a>(const module::Module &module)</td><td><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Line.html#a5">SetAttenuate</a>(bool att)</td><td><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Line.html#a6">SetEndPoint</a>(double x, double y, double z)</td><td><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule</a>(const module::Module &module)</td><td><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Line.html#a8">SetStartPoint</a>(double x, double y, double z)</td><td><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a></td><td><code> [inline]</code></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,481 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::model::Line Class Reference<br>+<small>+[<a class="el" href="group__models.html">Models</a>]</small>+</h1><code>#include <<a class="el" href="line_8h-source.html">line.h</a>></code>+<p>+<a href="classnoise_1_1model_1_1Line-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Model that defines the displacement of a line segment. +<p>+This model returns an output value from a noise module given the one-dimensional coordinate of an input value located on a line segment, which can be used as displacements.<p>+This class is useful for creating:<ul>+<li>roads and rivers</li><li>disaffected college students</li></ul>+<p>+To generate an output value, pass an input value between 0.0 and 1.0 to the <a class="el" href="classnoise_1_1model_1_1Line.html#a4">GetValue()</a> method. 0.0 represents the start position of the line segment and 1.0 represents the end position of the line segment. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::model::Line::Line"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a0">Line</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a1">Line</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &module)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a2">GetAttenuate</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a flag indicating whether the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached by the input value. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a3">GetModule</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the noise module that is used to generate the output values. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a4">GetValue</a> (double p) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the output value from the noise module given the one-dimensional coordinate of the specified input value located on the line segment. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a5">SetAttenuate</a> (bool att)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets a flag indicating that the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a6">SetEndPoint</a> (double x, double y, double z)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the end of the line segment to choose values along. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &module)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the noise module that is used to generate the output values. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html#a8">SetStartPoint</a> (double x, double y, double z)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the start of the line segment to choose values along. <a href="#a8"></a><br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::model::Line::Line"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Line::Line </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>module</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>module</em> </td><td>The noise module that is used to generate the output values. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a2" doxytag="noise::model::Line::GetAttenuate"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">bool noise::model::Line::GetAttenuate </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns a flag indicating whether the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached by the input value. +<p>+<dl compact><dt><b>Returns:</b></dt><dd><ul>+<li><em>true</em> if the value is to be attenuated</li><li><em>false</em> if not. </li></ul>+</dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::model::Line::GetModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a>& noise::model::Line::GetModule </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the noise module that is used to generate the output values. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>A reference to the noise module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule()</a> method. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::model::Line::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Line::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>p</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const</td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the output value from the noise module given the one-dimensional coordinate of the specified input value located on the line segment. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>The distance along the line segment (ranges from 0.0 to 1.0)</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value from the noise module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule()</a> method. <p>+The start and end points of the line segment were specified.</dd></dl>+The output value is generated by the noise module passed to the <a class="el" href="classnoise_1_1model_1_1Line.html#a7">SetModule()</a> method. This value may be attenuated (moved toward 0.0) as <em>p</em> approaches either end of the line segment; this is the default behavior.<p>+If the value is not to be attenuated, <em>p</em> can safely range outside the 0.0 to 1.0 range; the output value will be extrapolated along the line that this segment is part of. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::model::Line::SetAttenuate"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::model::Line::SetAttenuate </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">bool </td>+ <td class="mdname1" valign="top" nowrap> <em>att</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets a flag indicating that the output value is to be attenuated (moved toward 0.0) as the ends of the line segment are approached. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>att</em> </td><td>A flag that specifies whether the output value is to be attenuated. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::model::Line::SetEndPoint"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::model::Line::SetEndPoint </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the end of the line segment to choose values along. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>x coordinate of the end position. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>y coordinate of the end position. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>z coordinate of the end position. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::model::Line::SetModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::model::Line::SetModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>module</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the noise module that is used to generate the output values. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>module</em> </td><td>The noise module that is used to generate the output values.</td></tr>+ </table>+</dl>+This noise module must exist for the lifetime of this object, until you pass a new noise module to this method. </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::model::Line::SetStartPoint"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::model::Line::SetStartPoint </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the position ( <em>x</em>, <em>y</em>, <em>z</em> ) of the start of the line segment to choose values along. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>x coordinate of the start position. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>y coordinate of the start position. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>z coordinate of the start position. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="line_8h-source.html">line.h</a><li>line.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,126 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::model::Plane Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1model_1_1Plane.html">noise::model::Plane</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Plane.html#a2">GetModule</a>() const </td><td><a class="el" href="classnoise_1_1model_1_1Plane.html">noise::model::Plane</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Plane.html#a3">GetValue</a>(double x, double z) const </td><td><a class="el" href="classnoise_1_1model_1_1Plane.html">noise::model::Plane</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Plane.html#a0">Plane</a>()</td><td><a class="el" href="classnoise_1_1model_1_1Plane.html">noise::model::Plane</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Plane.html#a1">Plane</a>(const module::Module &module)</td><td><a class="el" href="classnoise_1_1model_1_1Plane.html">noise::model::Plane</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Plane.html#a4">SetModule</a>(const module::Module &module)</td><td><a class="el" href="classnoise_1_1model_1_1Plane.html">noise::model::Plane</a></td><td><code> [inline]</code></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,307 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::model::Plane Class Reference<br>+<small>+[<a class="el" href="group__models.html">Models</a>]</small>+</h1><code>#include <<a class="el" href="plane_8h-source.html">plane.h</a>></code>+<p>+<a href="classnoise_1_1model_1_1Plane-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Model that defines the surface of a plane. +<p>+This model returns an output value from a noise module given the coordinates of an input value located on the surface of an ( <em>x</em>, <em>z</em> ) plane.<p>+To generate an output value, pass the ( <em>x</em>, <em>z</em> ) coordinates of an input value to the <a class="el" href="classnoise_1_1model_1_1Plane.html#a3">GetValue()</a> method.<p>+This model is useful for creating:<ul>+<li>two-dimensional textures</li><li>terrain height maps for local areas</li></ul>+<p>+This plane extends infinitely in both directions. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::model::Plane::Plane"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Plane.html#a0">Plane</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Plane.html#a1">Plane</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &module)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Plane.html#a2">GetModule</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the noise module that is used to generate the output values. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Plane.html#a3">GetValue</a> (double x, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the output value from the noise module given the ( <em>x</em>, <em>z</em> ) coordinates of the specified input value located on the surface of the plane. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Plane.html#a4">SetModule</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &module)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the noise module that is used to generate the output values. <a href="#a4"></a><br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::model::Plane::Plane"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Plane::Plane </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>module</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>module</em> </td><td>The noise module that is used to generate the output values. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a2" doxytag="noise::model::Plane::GetModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a>& noise::model::Plane::GetModule </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the noise module that is used to generate the output values. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>A reference to the noise module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Plane.html#a4">SetModule()</a> method. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::model::Plane::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Plane::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const</td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the output value from the noise module given the ( <em>x</em>, <em>z</em> ) coordinates of the specified input value located on the surface of the plane. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value from the noise module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Plane.html#a4">SetModule()</a> method.</dd></dl>+This output value is generated by the noise module passed to the <a class="el" href="classnoise_1_1model_1_1Plane.html#a4">SetModule()</a> method. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::model::Plane::SetModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::model::Plane::SetModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>module</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the noise module that is used to generate the output values. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>module</em> </td><td>The noise module that is used to generate the output values.</td></tr>+ </table>+</dl>+This noise module must exist for the lifetime of this object, until you pass a new noise module to this method. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="plane_8h-source.html">plane.h</a><li>plane.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,126 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::model::Sphere Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1model_1_1Sphere.html">noise::model::Sphere</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Sphere.html#a2">GetModule</a>() const </td><td><a class="el" href="classnoise_1_1model_1_1Sphere.html">noise::model::Sphere</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Sphere.html#a3">GetValue</a>(double lat, double lon) const </td><td><a class="el" href="classnoise_1_1model_1_1Sphere.html">noise::model::Sphere</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Sphere.html#a4">SetModule</a>(const module::Module &module)</td><td><a class="el" href="classnoise_1_1model_1_1Sphere.html">noise::model::Sphere</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Sphere.html#a0">Sphere</a>()</td><td><a class="el" href="classnoise_1_1model_1_1Sphere.html">noise::model::Sphere</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1model_1_1Sphere.html#a1">Sphere</a>(const module::Module &module)</td><td><a class="el" href="classnoise_1_1model_1_1Sphere.html">noise::model::Sphere</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,313 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::model::Sphere Class Reference<br>+<small>+[<a class="el" href="group__models.html">Models</a>]</small>+</h1><code>#include <<a class="el" href="sphere_8h-source.html">sphere.h</a>></code>+<p>+<a href="classnoise_1_1model_1_1Sphere-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Model that defines the surface of a sphere. +<p>+<div align="center">+<img src="modelsphere.png" alt="modelsphere.png">+</div>+<p>+This model returns an output value from a noise module given the coordinates of an input value located on the surface of a sphere.<p>+To generate an output value, pass the (latitude, longitude) coordinates of an input value to the <a class="el" href="classnoise_1_1model_1_1Sphere.html#a3">GetValue()</a> method.<p>+This model is useful for creating:<ul>+<li>seamless textures that can be mapped onto a sphere</li><li>terrain height maps for entire planets</li></ul>+<p>+This sphere has a radius of 1.0 unit and its center is located at the origin. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::model::Sphere::Sphere"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Sphere.html#a0">Sphere</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Sphere.html#a1">Sphere</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &module)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Sphere.html#a2">GetModule</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the noise module that is used to generate the output values. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Sphere.html#a3">GetValue</a> (double lat, double lon) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the output value from the noise module given the (latitude, longitude) coordinates of the specified input value located on the surface of the sphere. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Sphere.html#a4">SetModule</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> &module)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the noise module that is used to generate the output values. <a href="#a4"></a><br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::model::Sphere::Sphere"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Sphere::Sphere </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>module</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>module</em> </td><td>The noise module that is used to generate the output values. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a2" doxytag="noise::model::Sphere::GetModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a>& noise::model::Sphere::GetModule </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the noise module that is used to generate the output values. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>A reference to the noise module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Sphere.html#a4">SetModule()</a> method. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::model::Sphere::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Sphere::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>lat</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>lon</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const</td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the output value from the noise module given the (latitude, longitude) coordinates of the specified input value located on the surface of the sphere. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>lat</em> </td><td>The latitude of the input value, in degrees. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>lon</em> </td><td>The longitude of the input value, in degrees.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value from the noise module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>A noise module was passed to the <a class="el" href="classnoise_1_1model_1_1Sphere.html#a4">SetModule()</a> method.</dd></dl>+This output value is generated by the noise module passed to the <a class="el" href="classnoise_1_1model_1_1Sphere.html#a4">SetModule()</a> method.<p>+Use a negative latitude if the input value is located on the southern hemisphere.<p>+Use a negative longitude if the input value is located on the western hemisphere. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::model::Sphere::SetModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::model::Sphere::SetModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">module::Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>module</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the noise module that is used to generate the output values. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>module</em> </td><td>The noise module that is used to generate the output values.</td></tr>+ </table>+</dl>+This noise module must exist for the lifetime of this object, until you pass a new noise module to this method. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="sphere_8h-source.html">sphere.h</a><li>sphere.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,129 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Abs Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Abs.html">noise::module::Abs</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Abs.html#a0">Abs</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Abs.html">noise::module::Abs</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Abs.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Abs.html">noise::module::Abs</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Abs.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Abs.html">noise::module::Abs</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,245 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Abs Class Reference<br>+<small>+[<a class="el" href="group__modifiermodules.html">Modifier Modules</a>]</small>+</h1><code>#include <<a class="el" href="abs_8h-source.html">abs.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Abs:+<p><center><img src="classnoise_1_1module_1_1Abs.png" usemap="#noise::module::Abs_map" border="0" alt=""></center>+<map name="noise::module::Abs_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Abs-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs the absolute value of the output value from a source module. +<p>+<div align="center">+<img src="moduleabs.png" alt="moduleabs.png">+</div>+<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Abs::Abs"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Abs.html#a0">Abs</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Abs.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Abs.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Abs::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Abs::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Abs::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Abs::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Abs.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="abs_8h-source.html">abs.h</a><li>abs.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 429 bytes)
@@ -0,0 +1,129 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Add Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Add.html">noise::module::Add</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Add.html#a0">Add</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Add.html">noise::module::Add</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Add.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Add.html">noise::module::Add</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Add.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Add.html">noise::module::Add</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,245 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Add Class Reference<br>+<small>+[<a class="el" href="group__combinermodules.html">Combiner Modules</a>]</small>+</h1><code>#include <<a class="el" href="add_8h-source.html">add.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Add:+<p><center><img src="classnoise_1_1module_1_1Add.png" usemap="#noise::module::Add_map" border="0" alt=""></center>+<map name="noise::module::Add_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Add-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs the sum of the two output values from two source modules. +<p>+<div align="center">+<img src="moduleadd.png" alt="moduleadd.png">+</div>+<p>+This noise module requires two source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Add::Add"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Add.html#a0">Add</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Add.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Add.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Add::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Add::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Add::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Add::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Add.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="add_8h-source.html">add.h</a><li>add.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 435 bytes)
@@ -0,0 +1,147 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Billow Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a0">Billow</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a1">GetFrequency</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a2">GetLacunarity</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a3">GetNoiseQuality</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a4">GetOctaveCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a5">GetPersistence</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a6">GetSeed</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a7">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a8">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#p0">m_frequency</a></td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#p1">m_lacunarity</a></td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#p2">m_noiseQuality</a></td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#p3">m_octaveCount</a></td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#p4">m_persistence</a></td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#p5">m_seed</a></td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a9">SetFrequency</a>(double frequency)</td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a10">SetLacunarity</a>(double lacunarity)</td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a11">SetNoiseQuality</a>(noise::NoiseQuality noiseQuality)</td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a12">SetOctaveCount</a>(int octaveCount)</td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a13">SetPersistence</a>(double persistence)</td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Billow.html#a14">SetSeed</a>(int seed)</td><td><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,739 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Billow Class Reference<br>+<small>+[<a class="el" href="group__generatormodules.html">Generator Modules</a>]</small>+</h1><code>#include <<a class="el" href="billow_8h-source.html">billow.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Billow:+<p><center><img src="classnoise_1_1module_1_1Billow.png" usemap="#noise::module::Billow_map" border="0" alt=""></center>+<map name="noise::module::Billow_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Billow-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs three-dimensional "billowy" noise. +<p>+<div align="center">+<img src="modulebillow.png" alt="modulebillow.png">+</div>+<p>+This noise module generates "billowy" noise suitable for clouds and rocks.<p>+This noise module is nearly identical to <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> except this noise module modifies each octave with an absolute-value function. See the documentation of <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> for more information. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a0">Billow</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a1">GetFrequency</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the frequency of the first octave. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a2">GetLacunarity</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the lacunarity of the billowy noise. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a3">GetNoiseQuality</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the quality of the billowy noise. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a4">GetOctaveCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of octaves that generate the billowy noise. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a5">GetPersistence</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the persistence value of the billowy noise. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a6">GetSeed</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the seed value used by the billowy-noise function. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a7">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a8">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a8"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a9">SetFrequency</a> (double frequency)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the frequency of the first octave. <a href="#a9"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a10">SetLacunarity</a> (double lacunarity)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the lacunarity of the billowy noise. <a href="#a10"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a11">SetNoiseQuality</a> (<a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> noiseQuality)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the quality of the billowy noise. <a href="#a11"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a12">SetOctaveCount</a> (int octaveCount)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the number of octaves that generate the billowy noise. <a href="#a12"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a13">SetPersistence</a> (double persistence)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the persistence value of the billowy noise. <a href="#a13"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#a14">SetSeed</a> (int seed)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the seed value used by the billowy-noise function. <a href="#a14"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Billow::m_frequency"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#p0">m_frequency</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Frequency of the first octave. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::Billow::m_lacunarity"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#p1">m_lacunarity</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Frequency multiplier between successive octaves. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::Billow::m_noiseQuality"></a>+<a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#p2">m_noiseQuality</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Quality of the billowy noise. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p3" doxytag="noise::module::Billow::m_octaveCount"></a>+int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#p3">m_octaveCount</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Total number of octaves that generate the billowy noise. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p4" doxytag="noise::module::Billow::m_persistence"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#p4">m_persistence</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Persistence value of the billowy noise. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p5" doxytag="noise::module::Billow::m_seed"></a>+int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html#p5">m_seed</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Seed value used by the billowy-noise function. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::Billow::Billow"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Billow::Billow </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default frequency is set to <a class="el" href="group__generatormodules.html#ga0">noise::module::DEFAULT_BILLOW_FREQUENCY</a>.<p>+The default lacunarity is set to <a class="el" href="group__generatormodules.html#ga1">noise::module::DEFAULT_BILLOW_LACUNARITY</a>.<p>+The default number of octaves is set to <a class="el" href="group__generatormodules.html#ga2">noise::module::DEFAULT_BILLOW_OCTAVE_COUNT</a>.<p>+The default persistence value is set to <a class="el" href="group__generatormodules.html#ga3">noise::module::DEFAULT_BILLOW_PERSISTENCE</a>.<p>+The default seed value is set to <a class="el" href="group__generatormodules.html#ga5">noise::module::DEFAULT_BILLOW_SEED</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Billow::GetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Billow::GetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the frequency of the first octave. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The frequency of the first octave. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Billow::GetLacunarity"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Billow::GetLacunarity </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the lacunarity of the billowy noise. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The lacunarity of the billowy noise.</dd></dl>+The lacunarity is the frequency multiplier between successive octaves. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Billow::GetNoiseQuality"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> noise::module::Billow::GetNoiseQuality </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the quality of the billowy noise. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The quality of the billowy noise.</dd></dl>+See <a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> for definitions of the various coherent-noise qualities. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Billow::GetOctaveCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int noise::module::Billow::GetOctaveCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of octaves that generate the billowy noise. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of octaves that generate the billowy noise.</dd></dl>+The number of octaves controls the amount of detail in the billowy noise. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::Billow::GetPersistence"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Billow::GetPersistence </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the persistence value of the billowy noise. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The persistence value of the billowy noise.</dd></dl>+The persistence value controls the roughness of the billowy noise. </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::Billow::GetSeed"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int noise::module::Billow::GetSeed </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the seed value used by the billowy-noise function. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The seed value. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::Billow::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Billow::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::module::Billow::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Billow::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Billow.html#a7">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a9" doxytag="noise::module::Billow::SetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Billow::SetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>frequency</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the frequency of the first octave. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>frequency</em> </td><td>The frequency of the first octave. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a10" doxytag="noise::module::Billow::SetLacunarity"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Billow::SetLacunarity </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>lacunarity</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the lacunarity of the billowy noise. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>lacunarity</em> </td><td>The lacunarity of the billowy noise.</td></tr>+ </table>+</dl>+The lacunarity is the frequency multiplier between successive octaves.<p>+For best results, set the lacunarity to a number between 1.5 and 3.5. </td>+ </tr>+</table>+<a class="anchor" name="a11" doxytag="noise::module::Billow::SetNoiseQuality"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Billow::SetNoiseQuality </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td>+ <td class="mdname1" valign="top" nowrap> <em>noiseQuality</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the quality of the billowy noise. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noiseQuality</em> </td><td>The quality of the billowy noise.</td></tr>+ </table>+</dl>+See <a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> for definitions of the various coherent-noise qualities. </td>+ </tr>+</table>+<a class="anchor" name="a12" doxytag="noise::module::Billow::SetOctaveCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Billow::SetOctaveCount </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname1" valign="top" nowrap> <em>octaveCount</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the number of octaves that generate the billowy noise. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>octaveCount</em> </td><td>The number of octaves that generate the billowy noise.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Precondition:</b></dt><dd>The number of octaves ranges from 1 to <a class="el" href="group__generatormodules.html#ga6">noise::module::BILLOW_MAX_OCTAVE</a>.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+The number of octaves controls the amount of detail in the billowy noise.<p>+The larger the number of octaves, the more time required to calculate the billowy-noise value. </td>+ </tr>+</table>+<a class="anchor" name="a13" doxytag="noise::module::Billow::SetPersistence"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Billow::SetPersistence </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>persistence</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the persistence value of the billowy noise. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>persistence</em> </td><td>The persistence value of the billowy noise.</td></tr>+ </table>+</dl>+The persistence value controls the roughness of the billowy noise.<p>+For best results, set the persistence value to a number between 0.0 and 1.0. </td>+ </tr>+</table>+<a class="anchor" name="a14" doxytag="noise::module::Billow::SetSeed"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Billow::SetSeed </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname1" valign="top" nowrap> <em>seed</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the seed value used by the billowy-noise function. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>The seed value. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="billow_8h-source.html">billow.h</a><li>billow.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 438 bytes)
@@ -0,0 +1,131 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Blend Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Blend.html">noise::module::Blend</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Blend.html#a0">Blend</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Blend.html">noise::module::Blend</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Blend.html#a1">GetControlModule</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Blend.html">noise::module::Blend</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Blend.html#a2">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Blend.html">noise::module::Blend</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Blend.html#a3">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Blend.html">noise::module::Blend</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Blend.html#a4">SetControlModule</a>(const Module &controlModule)</td><td><a class="el" href="classnoise_1_1module_1_1Blend.html">noise::module::Blend</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,329 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Blend Class Reference<br>+<small>+[<a class="el" href="group__selectormodules.html">Selector Modules</a>]</small>+</h1><code>#include <<a class="el" href="blend_8h-source.html">blend.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Blend:+<p><center><img src="classnoise_1_1module_1_1Blend.png" usemap="#noise::module::Blend_map" border="0" alt=""></center>+<map name="noise::module::Blend_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Blend-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs a weighted blend of the output values from two source modules given the output value supplied by a control module. +<p>+<div align="center">+<img src="moduleblend.png" alt="moduleblend.png">+</div>+<p>+Unlike most other noise modules, the index value assigned to a source module determines its role in the blending operation:<ul>+<li>Source module 0 (upper left in the diagram) outputs one of the values to blend.</li><li>Source module 1 (lower left in the diagram) outputs one of the values to blend.</li><li>Source module 2 (bottom of the diagram) is known as the <em>control module</em>. The control module determines the weight of the blending operation. Negative values weigh the blend towards the output value from the source module with an index value of 0. Positive values weigh the blend towards the output value from the source module with an index value of 1.</li></ul>+<p>+An application can pass the control module to the <a class="el" href="classnoise_1_1module_1_1Blend.html#a4">SetControlModule()</a> method instead of the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. This may make the application code easier to read.<p>+This noise module uses linear interpolation to perform the blending operation.<p>+This noise module requires three source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Blend::Blend"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Blend.html#a0">Blend</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Blend.html#a1">GetControlModule</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the control module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Blend.html#a2">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Blend.html#a3">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Blend.html#a4">SetControlModule</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &controlModule)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the control module. <a href="#a4"></a><br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Blend::GetControlModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a>& noise::module::Blend::GetControlModule </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the control module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>A reference to the control module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>A control module has been added to this noise module via a call to <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> or <a class="el" href="classnoise_1_1module_1_1Blend.html#a4">SetControlModule()</a>.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionNoModule</em> </td><td>See the preconditions for more information.</td></tr>+ </table>+</dl>+The control module determines the weight of the blending operation. Negative values weigh the blend towards the output value from the source module with an index value of 0. Positive values weigh the blend towards the output value from the source module with an index value of 1. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Blend::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Blend::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Blend::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Blend::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Blend.html#a2">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Blend::SetControlModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Blend::SetControlModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>controlModule</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the control module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>controlModule</em> </td><td>The control module.</td></tr>+ </table>+</dl>+The control module determines the weight of the blending operation. Negative values weigh the blend towards the output value from the source module with an index value of 0. Positive values weigh the blend towards the output value from the source module with an index value of 1.<p>+This method assigns the control module an index value of 2. Passing the control module to this method produces the same results as passing the control module to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method while assigning that noise module an index value of 2.<p>+This control module must exist throughout the lifetime of this noise module unless another control module replaces that control module. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="blend_8h-source.html">blend.h</a><li>blend.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 439 bytes)
@@ -0,0 +1,134 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Cache Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cache.html#a0">Cache</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cache.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cache.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cache.html#p0">m_cachedValue</a></td><td><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a></td><td><code> [mutable, protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cache.html#p1">m_isCached</a></td><td><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a></td><td><code> [mutable, protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cache.html#p2">m_xCache</a></td><td><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a></td><td><code> [mutable, protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cache.html#p3">m_yCache</a></td><td><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a></td><td><code> [mutable, protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cache.html#p4">m_zCache</a></td><td><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a></td><td><code> [mutable, protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cache.html#a3">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,326 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Cache Class Reference<br>+<small>+[<a class="el" href="group__miscmodules.html">Miscellaneous Modules</a>]</small>+</h1><code>#include <<a class="el" href="cache_8h-source.html">cache.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Cache:+<p><center><img src="classnoise_1_1module_1_1Cache.png" usemap="#noise::module::Cache_map" border="0" alt=""></center>+<map name="noise::module::Cache_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Cache-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that caches the last output value generated by a source module. +<p>+If an application passes an input value to the <a class="el" href="classnoise_1_1module_1_1Cache.html#a2">GetValue()</a> method that differs from the previously passed-in input value, this noise module instructs the source module to calculate the output value. This value, as well as the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value, are stored (cached) in this noise module.<p>+If the application passes an input value to the <a class="el" href="classnoise_1_1module_1_1Cache.html#a2">GetValue()</a> method that is equal to the previously passed-in input value, this noise module returns the cached output value without having the source module recalculate the output value.<p>+If an application passes a new source module to the <a class="el" href="classnoise_1_1module_1_1Cache.html#a3">SetSourceModule()</a> method, the cache is invalidated.<p>+Caching a noise module is useful if it is used as a source module for multiple noise modules. If a source module is not cached, the source module will redundantly calculate the same output value once for each noise module in which it is included.<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Cache::Cache"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#a0">Cache</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#a3">SetSourceModule</a> (int index, const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &sourceModule)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Connects a source module to this noise module. <a href="#a3"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Cache::m_cachedValue"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#p0">m_cachedValue</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">The cached output value at the cached input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::Cache::m_isCached"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#p1">m_isCached</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Determines if a cached output value is stored in this noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::Cache::m_xCache"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#p2">m_xCache</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight"><em>x</em> coordinate of the cached input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p3" doxytag="noise::module::Cache::m_yCache"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#p3">m_yCache</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight"><em>y</em> coordinate of the cached input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p4" doxytag="noise::module::Cache::m_zCache"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html#p4">m_zCache</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight"><em>z</em> coordinate of the cached input value. <br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Cache::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Cache::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Cache::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Cache::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Cache.html#a3">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Cache.html#a3">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Cache.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Cache::SetSourceModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual void noise::module::Cache::SetSourceModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname" nowrap> <em>index</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td>+ <td class="mdname" nowrap> <em>sourceModule</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"><code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Connects a source module to this noise module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>An index value to assign to this source module. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>sourceModule</em> </td><td>The source module to attach.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Precondition:</b></dt><dd>The index value ranges from 0 to one less than the number of source modules required by this noise module.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+A noise module mathematically combines the output values from the source modules to generate the value returned by <a class="el" href="classnoise_1_1module_1_1Cache.html#a2">GetValue()</a>.<p>+The index value to assign a source module is a unique identifier for that source module. If an index value has already been assigned to a source module, this noise module replaces the old source module with the new source module.<p>+Before an application can call the <a class="el" href="classnoise_1_1module_1_1Cache.html#a2">GetValue()</a> method, it must first connect all required source modules. To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Cache.html#a1">GetSourceModuleCount()</a> method.<p>+This source module must exist throughout the lifetime of this noise module unless another source module replaces that source module.<p>+A noise module does not modify a source module; it only modifies its output values. +<p>+Reimplemented from <a class="el" href="classnoise_1_1module_1_1Module.html#a5">noise::module::Module</a>. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="cache_8h-source.html">cache.h</a><li>cache.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 448 bytes)
@@ -0,0 +1,129 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Checkerboard Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Checkerboard.html">noise::module::Checkerboard</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a0">Checkerboard</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Checkerboard.html">noise::module::Checkerboard</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Checkerboard.html">noise::module::Checkerboard</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Checkerboard.html">noise::module::Checkerboard</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,247 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Checkerboard Class Reference<br>+<small>+[<a class="el" href="group__generatormodules.html">Generator Modules</a>]</small>+</h1><code>#include <<a class="el" href="checkerboard_8h-source.html">checkerboard.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Checkerboard:+<p><center><img src="classnoise_1_1module_1_1Checkerboard.png" usemap="#noise::module::Checkerboard_map" border="0" alt=""></center>+<map name="noise::module::Checkerboard_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,175,24">+</map>+<a href="classnoise_1_1module_1_1Checkerboard-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs a checkerboard pattern. +<p>+<div align="center">+<img src="modulecheckerboard.png" alt="modulecheckerboard.png">+</div>+<p>+This noise module outputs unit-sized blocks of alternating values. The values of these blocks alternate between -1.0 and +1.0.<p>+This noise module is not really useful by itself, but it is often used for debugging purposes.<p>+This noise module does not require any source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Checkerboard::Checkerboard"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a0">Checkerboard</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Checkerboard::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Checkerboard::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Checkerboard::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Checkerboard::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="checkerboard_8h-source.html">checkerboard.h</a><li>checkerboard.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 501 bytes)
@@ -0,0 +1,134 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Clamp Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Clamp.html#a0">Clamp</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Clamp.html#a1">GetLowerBound</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Clamp.html#a2">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Clamp.html#a3">GetUpperBound</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Clamp.html#a4">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Clamp.html#p0">m_lowerBound</a></td><td><a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Clamp.html#p1">m_upperBound</a></td><td><a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Clamp.html#a5">SetBounds</a>(double lowerBound, double upperBound)</td><td><a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,407 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Clamp Class Reference<br>+<small>+[<a class="el" href="group__modifiermodules.html">Modifier Modules</a>]</small>+</h1><code>#include <<a class="el" href="clamp_8h-source.html">clamp.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Clamp:+<p><center><img src="classnoise_1_1module_1_1Clamp.png" usemap="#noise::module::Clamp_map" border="0" alt=""></center>+<map name="noise::module::Clamp_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Clamp-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that clamps the output value from a source module to a range of values. +<p>+<div align="center">+<img src="moduleclamp.png" alt="moduleclamp.png">+</div>+<p>+The range of values in which to clamp the output value is called the <em>clamping range</em>.<p>+If the output value from the source module is less than the lower bound of the clamping range, this noise module clamps that value to the lower bound. If the output value from the source module is greater than the upper bound of the clamping range, this noise module clamps that value to the upper bound.<p>+To specify the upper and lower bounds of the clamping range, call the <a class="el" href="classnoise_1_1module_1_1Clamp.html#a5">SetBounds()</a> method.<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Clamp.html#a0">Clamp</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Clamp.html#a1">GetLowerBound</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the lower bound of the clamping range. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Clamp.html#a2">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Clamp.html#a3">GetUpperBound</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the upper bound of the clamping range. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Clamp.html#a4">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Clamp.html#a5">SetBounds</a> (double lowerBound, double upperBound)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the lower and upper bounds of the clamping range. <a href="#a5"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Clamp::m_lowerBound"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Clamp.html#p0">m_lowerBound</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Lower bound of the clamping range. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::Clamp::m_upperBound"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Clamp.html#p1">m_upperBound</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Upper bound of the clamping range. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::Clamp::Clamp"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Clamp::Clamp </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default lower bound of the clamping range is set to <a class="el" href="group__modifiermodules.html#ga0">noise::module::DEFAULT_CLAMP_LOWER_BOUND</a>.<p>+The default upper bound of the clamping range is set to <a class="el" href="group__modifiermodules.html#ga1">noise::module::DEFAULT_CLAMP_UPPER_BOUND</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Clamp::GetLowerBound"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Clamp::GetLowerBound </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the lower bound of the clamping range. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The lower bound.</dd></dl>+If the output value from the source module is less than the lower bound of the clamping range, this noise module clamps that value to the lower bound. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Clamp::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Clamp::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Clamp::GetUpperBound"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Clamp::GetUpperBound </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the upper bound of the clamping range. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The upper bound.</dd></dl>+If the output value from the source module is greater than the upper bound of the clamping range, this noise module clamps that value to the upper bound. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Clamp::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Clamp::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Clamp.html#a2">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::Clamp::SetBounds"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void Clamp::SetBounds </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>lowerBound</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>upperBound</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the lower and upper bounds of the clamping range. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>lowerBound</em> </td><td>The lower bound. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>upperBound</em> </td><td>The upper bound.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Precondition:</b></dt><dd>The lower bound must be less than or equal to the upper bound.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+If the output value from the source module is less than the lower bound of the clamping range, this noise module clamps that value to the lower bound. If the output value from the source module is greater than the upper bound of the clamping range, this noise module clamps that value to the upper bound. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="clamp_8h-source.html">clamp.h</a><li>clamp.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 451 bytes)
@@ -0,0 +1,132 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Const Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Const.html#a0">Const</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Const.html#a1">GetConstValue</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Const.html#a2">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Const.html#a3">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Const.html#p0">m_constValue</a></td><td><a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Const.html#a4">SetConstValue</a>(double constValue)</td><td><a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,352 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Const Class Reference<br>+<small>+[<a class="el" href="group__generatormodules.html">Generator Modules</a>]</small>+</h1><code>#include <<a class="el" href="const_8h-source.html">const.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Const:+<p><center><img src="classnoise_1_1module_1_1Const.png" usemap="#noise::module::Const_map" border="0" alt=""></center>+<map name="noise::module::Const_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Const-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs a constant value. +<p>+<div align="center">+<img src="moduleconst.png" alt="moduleconst.png">+</div>+<p>+To specify the constant value, call the <a class="el" href="classnoise_1_1module_1_1Const.html#a4">SetConstValue()</a> method.<p>+This noise module is not useful by itself, but it is often used as a source module for other noise modules.<p>+This noise module does not require any source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Const.html#a0">Const</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Const.html#a1">GetConstValue</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the constant output value for this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Const.html#a2">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Const.html#a3">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Const.html#a4">SetConstValue</a> (double constValue)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the constant output value for this noise module. <a href="#a4"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Const::m_constValue"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Const.html#p0">m_constValue</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constant value. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::Const::Const"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Const::Const </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default constant value is set to <a class="el" href="group__generatormodules.html#ga7">noise::module::DEFAULT_CONST_VALUE</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Const::GetConstValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Const::GetConstValue </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the constant output value for this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The constant output value for this noise module. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Const::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Const::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Const::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual double noise::module::Const::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Const.html#a2">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Const::SetConstValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Const::SetConstValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>constValue</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the constant output value for this noise module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>constValue</em> </td><td>The constant output value for this noise module. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="const_8h-source.html">const.h</a><li>const.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 445 bytes)
@@ -0,0 +1,138 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Curve Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#a2">AddControlPoint</a>(double inputValue, double outputValue)</td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#a3">ClearAllControlPoints</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#a0">Curve</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#b0">FindInsertionPos</a>(double inputValue)</td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#a4">GetControlPointArray</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#a5">GetControlPointCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#a6">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#a7">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#b1">InsertAtPos</a>(int insertionPos, double inputValue, double outputValue)</td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#p0">m_controlPointCount</a></td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#p1">m_pControlPoints</a></td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Curve.html#a1">~Curve</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,521 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Curve Class Reference<br>+<small>+[<a class="el" href="group__modifiermodules.html">Modifier Modules</a>]</small>+</h1><code>#include <<a class="el" href="curve_8h-source.html">curve.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Curve:+<p><center><img src="classnoise_1_1module_1_1Curve.png" usemap="#noise::module::Curve_map" border="0" alt=""></center>+<map name="noise::module::Curve_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Curve-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that maps the output value from a source module onto an arbitrary function curve. +<p>+<div align="center">+<img src="modulecurve.png" alt="modulecurve.png">+</div>+<p>+This noise module maps the output value from the source module onto an application-defined curve. This curve is defined by a number of <em>control points</em>; each control point has an <em>input value</em> that maps to an <em>output value</em>. Refer to the following illustration:<p>+<div align="center">+<img src="curve.png" alt="curve.png">+</div>+<p>+To add the control points to this curve, call the <a class="el" href="classnoise_1_1module_1_1Curve.html#a2">AddControlPoint()</a> method.<p>+Since this curve is a cubic spline, an application must add a minimum of four control points to the curve. If this is not done, the <a class="el" href="classnoise_1_1module_1_1Curve.html#a7">GetValue()</a> method fails. Each control point can have any input and output value, although no two control points can have the same input value. There is no limit to the number of control points that can be added to the curve.<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Curve::Curve"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#a0">Curve</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1" doxytag="noise::module::Curve::~Curve"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#a1">~Curve</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#a2">AddControlPoint</a> (double inputValue, double outputValue)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a control point to the curve. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#a3">ClearAllControlPoints</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes all the control points on the curve. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="structnoise_1_1module_1_1ControlPoint.html">ControlPoint</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#a4">GetControlPointArray</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a pointer to the array of control points on the curve. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#a5">GetControlPointCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of control points on the curve. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#a6">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#a7">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a7"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#b0">FindInsertionPos</a> (double inputValue)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Determines the array index in which to insert the control point into the internal control point array. <a href="#b0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#b1">InsertAtPos</a> (int insertionPos, double inputValue, double outputValue)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Inserts the control point at the specified position in the internal control point array. <a href="#b1"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Curve::m_controlPointCount"></a>+int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#p0">m_controlPointCount</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Number of control points on the curve. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::Curve::m_pControlPoints"></a>+<a class="el" href="structnoise_1_1module_1_1ControlPoint.html">ControlPoint</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html#p1">m_pControlPoints</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Array that stores the control points. <br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a2" doxytag="noise::module::Curve::AddControlPoint"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void Curve::AddControlPoint </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>inputValue</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>outputValue</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Adds a control point to the curve. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>inputValue</em> </td><td>The input value stored in the control point. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>outputValue</em> </td><td>The output value stored in the control point.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Precondition:</b></dt><dd>No two control points have the same input value.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+It does not matter which order these points are added. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Curve::ClearAllControlPoints"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void Curve::ClearAllControlPoints </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Deletes all the control points on the curve. +<p>+<dl compact><dt><b>Postcondition:</b></dt><dd>All points on the curve are deleted. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="b0" doxytag="noise::module::Curve::FindInsertionPos"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int Curve::FindInsertionPos </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>inputValue</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [protected]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Determines the array index in which to insert the control point into the internal control point array. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>inputValue</em> </td><td>The input value of the control point.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The array index in which to insert the control point.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>No two control points have the same input value.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+By inserting the control point at the returned array index, this class ensures that the control point array is sorted by input value. The code that maps a value onto the curve requires a sorted control point array. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Curve::GetControlPointArray"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">const <a class="el" href="structnoise_1_1module_1_1ControlPoint.html">ControlPoint</a>* noise::module::Curve::GetControlPointArray </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns a pointer to the array of control points on the curve. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>A pointer to the array of control points.</dd></dl>+Before calling this method, call <a class="el" href="classnoise_1_1module_1_1Curve.html#a5">GetControlPointCount()</a> to determine the number of control points in this array.<p>+It is recommended that an application does not store this pointer for later use since the pointer to the array may change if the application calls another method of this object. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::Curve::GetControlPointCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int noise::module::Curve::GetControlPointCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of control points on the curve. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of control points on the curve. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::Curve::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Curve::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::Curve::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Curve::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Curve.html#a6">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="b1" doxytag="noise::module::Curve::InsertAtPos"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void Curve::InsertAtPos </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname" nowrap> <em>insertionPos</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>inputValue</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>outputValue</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"><code> [protected]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Inserts the control point at the specified position in the internal control point array. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>insertionPos</em> </td><td>The zero-based array position in which to insert the control point. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>inputValue</em> </td><td>The input value stored in the control point. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>outputValue</em> </td><td>The output value stored in the control point.</td></tr>+ </table>+</dl>+To make room for this new control point, this method reallocates the control point array and shifts all control points occurring after the insertion position up by one.<p>+Because the curve mapping algorithm used by this noise module requires that all control points in the array must be sorted by input value, the new control point should be inserted at the position in which the order is still preserved. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="curve_8h-source.html">curve.h</a><li>curve.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 447 bytes)
@@ -0,0 +1,132 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Cylinders Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Cylinders.html">noise::module::Cylinders</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html#a0">Cylinders</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html">noise::module::Cylinders</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html#a1">GetFrequency</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html">noise::module::Cylinders</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html#a2">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html">noise::module::Cylinders</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html#a3">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html">noise::module::Cylinders</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html#p0">m_frequency</a></td><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html">noise::module::Cylinders</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html#a4">SetFrequency</a>(double frequency)</td><td><a class="el" href="classnoise_1_1module_1_1Cylinders.html">noise::module::Cylinders</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,355 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Cylinders Class Reference<br>+<small>+[<a class="el" href="group__generatormodules.html">Generator Modules</a>]</small>+</h1><code>#include <<a class="el" href="cylinders_8h-source.html">cylinders.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Cylinders:+<p><center><img src="classnoise_1_1module_1_1Cylinders.png" usemap="#noise::module::Cylinders_map" border="0" alt=""></center>+<map name="noise::module::Cylinders_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,148,24">+</map>+<a href="classnoise_1_1module_1_1Cylinders-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs concentric cylinders. +<p>+<div align="center">+<img src="modulecylinders.png" alt="modulecylinders.png">+</div>+<p>+This noise module outputs concentric cylinders centered on the origin. These cylinders are oriented along the <em>y</em> axis similar to the concentric rings of a tree. Each cylinder extends infinitely along the <em>y</em> axis.<p>+The first cylinder has a radius of 1.0. Each subsequent cylinder has a radius that is 1.0 unit larger than the previous cylinder.<p>+The output value from this noise module is determined by the distance between the input value and the the nearest cylinder surface. The input values that are located on a cylinder surface are given the output value 1.0 and the input values that are equidistant from two cylinder surfaces are given the output value -1.0.<p>+An application can change the frequency of the concentric cylinders. Increasing the frequency reduces the distances between cylinders. To specify the frequency, call the <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a4">SetFrequency()</a> method.<p>+This noise module, modified with some low-frequency, low-power turbulence, is useful for generating wood-like textures.<p>+This noise module does not require any source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cylinders.html#a0">Cylinders</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cylinders.html#a1">GetFrequency</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the frequency of the concentric cylinders. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cylinders.html#a2">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cylinders.html#a3">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cylinders.html#a4">SetFrequency</a> (double frequency)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the frequenct of the concentric cylinders. <a href="#a4"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Cylinders::m_frequency"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cylinders.html#p0">m_frequency</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Frequency of the concentric cylinders. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::Cylinders::Cylinders"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Cylinders::Cylinders </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default frequency is set to <a class="el" href="group__generatormodules.html#ga8">noise::module::DEFAULT_CYLINDERS_FREQUENCY</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Cylinders::GetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Cylinders::GetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the frequency of the concentric cylinders. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The frequency of the concentric cylinders.</dd></dl>+Increasing the frequency increases the density of the concentric cylinders, reducing the distances between them. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Cylinders::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Cylinders::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Cylinders::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Cylinders::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a2">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Cylinders::SetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Cylinders::SetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>frequency</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the frequenct of the concentric cylinders. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>frequency</em> </td><td>The frequency of the concentric cylinders.</td></tr>+ </table>+</dl>+Increasing the frequency increases the density of the concentric cylinders, reducing the distances between them. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="cylinders_8h-source.html">cylinders.h</a><li>cylinders.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 481 bytes)
@@ -0,0 +1,136 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Displace Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Displace.html#a0">Displace</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Displace.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Displace.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Displace.html#a3">GetXDisplaceModule</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Displace.html#a4">GetYDisplaceModule</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Displace.html#a5">GetZDisplaceModule</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Displace.html#a6">SetDisplaceModules</a>(const Module &xDisplaceModule, const Module &yDisplaceModule, const Module &zDisplaceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Displace.html#a7">SetXDisplaceModule</a>(const Module &xDisplaceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Displace.html#a8">SetYDisplaceModule</a>(const Module &yDisplaceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Displace.html#a9">SetZDisplaceModule</a>(const Module &zDisplaceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,544 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Displace Class Reference<br>+<small>+[<a class="el" href="group__transformermodules.html">Transformer Modules</a>]</small>+</h1><code>#include <<a class="el" href="displace_8h-source.html">displace.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Displace:+<p><center><img src="classnoise_1_1module_1_1Displace.png" usemap="#noise::module::Displace_map" border="0" alt=""></center>+<map name="noise::module::Displace_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,143,24">+</map>+<a href="classnoise_1_1module_1_1Displace-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that uses three source modules to displace each coordinate of the input value before returning the output value from a source module. +<p>+<div align="center">+<img src="moduledisplace.png" alt="moduledisplace.png">+</div>+<p>+Unlike most other noise modules, the index value assigned to a source module determines its role in the displacement operation:<ul>+<li>Source module 0 (left in the diagram) outputs a value.</li><li>Source module 1 (lower left in the diagram) specifies the offset to apply to the <em>x</em> coordinate of the input value.</li><li>Source module 2 (lower center in the diagram) specifies the offset to apply to the <em>y</em> coordinate of the input value.</li><li>Source module 3 (lower right in the diagram) specifies the offset to apply to the <em>z</em> coordinate of the input value.</li></ul>+<p>+The <a class="el" href="classnoise_1_1module_1_1Displace.html#a2">GetValue()</a> method modifies the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value using the output values from the three displacement modules before retrieving the output value from the source module.<p>+The <a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a> noise module is a special case of the displacement module; internally, there are three Perlin-noise modules that perform the displacement operation.<p>+This noise module requires four source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Displace::Displace"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Displace.html#a0">Displace</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Displace.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Displace.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Displace.html#a3">GetXDisplaceModule</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the <em>x</em> displacement module. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Displace.html#a4">GetYDisplaceModule</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the <em>y</em> displacement module. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Displace.html#a5">GetZDisplaceModule</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the <em>z</em> displacement module. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Displace.html#a6">SetDisplaceModules</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &xDisplaceModule, const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &yDisplaceModule, const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &zDisplaceModule)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the <em>x</em>, <em>y</em>, and <em>z</em> displacement modules. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Displace.html#a7">SetXDisplaceModule</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &xDisplaceModule)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the <em>x</em> displacement module. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Displace.html#a8">SetYDisplaceModule</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &yDisplaceModule)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the <em>y</em> displacement module. <a href="#a8"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Displace.html#a9">SetZDisplaceModule</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &zDisplaceModule)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the <em>z</em> displacement module. <a href="#a9"></a><br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Displace::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Displace::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Displace::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Displace::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Displace.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Displace::GetXDisplaceModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a>& noise::module::Displace::GetXDisplaceModule </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the <em>x</em> displacement module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>A reference to the <em>x</em> displacement module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>This displacement module has been added to this noise module via a call to <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> or <a class="el" href="classnoise_1_1module_1_1Displace.html#a7">SetXDisplaceModule()</a>.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionNoModule</em> </td><td>See the preconditions for more information.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1Displace.html#a2">GetValue()</a> method displaces the input value by adding the output value from this displacement module to the <em>x</em> coordinate of the input value before returning the output value from the source module. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Displace::GetYDisplaceModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a>& noise::module::Displace::GetYDisplaceModule </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the <em>y</em> displacement module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>A reference to the <em>y</em> displacement module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>This displacement module has been added to this noise module via a call to <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> or <a class="el" href="classnoise_1_1module_1_1Displace.html#a8">SetYDisplaceModule()</a>.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionNoModule</em> </td><td>See the preconditions for more information.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1Displace.html#a2">GetValue()</a> method displaces the input value by adding the output value from this displacement module to the <em>y</em> coordinate of the input value before returning the output value from the source module. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::Displace::GetZDisplaceModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a>& noise::module::Displace::GetZDisplaceModule </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the <em>z</em> displacement module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>A reference to the <em>z</em> displacement module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>This displacement module has been added to this noise module via a call to <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> or <a class="el" href="classnoise_1_1module_1_1Displace.html#a9">SetZDisplaceModule()</a>.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionNoModule</em> </td><td>See the preconditions for more information.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1Displace.html#a2">GetValue()</a> method displaces the input value by adding the output value from this displacement module to the <em>z</em> coordinate of the input value before returning the output value from the source module. </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::Displace::SetDisplaceModules"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Displace::SetDisplaceModules </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td>+ <td class="mdname" nowrap> <em>xDisplaceModule</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td>+ <td class="mdname" nowrap> <em>yDisplaceModule</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td>+ <td class="mdname" nowrap> <em>zDisplaceModule</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the <em>x</em>, <em>y</em>, and <em>z</em> displacement modules. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>xDisplaceModule</em> </td><td>Displacement module that displaces the <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>yDisplaceModule</em> </td><td>Displacement module that displaces the <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>zDisplaceModule</em> </td><td>Displacement module that displaces the <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1Displace.html#a2">GetValue()</a> method displaces the input value by adding the output value from each of the displacement modules to the corresponding coordinates of the input value before returning the output value from the source module.<p>+This method assigns an index value of 1 to the <em>x</em> displacement module, an index value of 2 to the <em>y</em> displacement module, and an index value of 3 to the <em>z</em> displacement module.<p>+These displacement modules must exist throughout the lifetime of this noise module unless another displacement module replaces it. </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::Displace::SetXDisplaceModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Displace::SetXDisplaceModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>xDisplaceModule</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the <em>x</em> displacement module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>xDisplaceModule</em> </td><td>Displacement module that displaces the <em>x</em> coordinate.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1Displace.html#a2">GetValue()</a> method displaces the input value by adding the output value from this displacement module to the <em>x</em> coordinate of the input value before returning the output value from the source module.<p>+This method assigns an index value of 1 to the <em>x</em> displacement module. Passing this displacement module to this method produces the same results as passing this displacement module to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method while assigning it an index value of 1.<p>+This displacement module must exist throughout the lifetime of this noise module unless another displacement module replaces it. </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::module::Displace::SetYDisplaceModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Displace::SetYDisplaceModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>yDisplaceModule</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the <em>y</em> displacement module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>yDisplaceModule</em> </td><td>Displacement module that displaces the <em>y</em> coordinate.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1Displace.html#a2">GetValue()</a> method displaces the input value by adding the output value from this displacement module to the <em>y</em> coordinate of the input value before returning the output value from the source module.<p>+This method assigns an index value of 2 to the <em>y</em> displacement module. Passing this displacement module to this method produces the same results as passing this displacement module to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method while assigning it an index value of 2.<p>+This displacement module must exist throughout the lifetime of this noise module unless another displacement module replaces it. </td>+ </tr>+</table>+<a class="anchor" name="a9" doxytag="noise::module::Displace::SetZDisplaceModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Displace::SetZDisplaceModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>zDisplaceModule</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the <em>z</em> displacement module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>zDisplaceModule</em> </td><td>Displacement module that displaces the <em>z</em> coordinate.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1Displace.html#a2">GetValue()</a> method displaces the input value by adding the output value from this displacement module to the <em>z</em> coordinate of the input value before returning the output value from the source module.<p>+This method assigns an index value of 3 to the <em>z</em> displacement module. Passing this displacement module to this method produces the same results as passing this displacement module to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method while assigning it an index value of 3.<p>+This displacement module must exist throughout the lifetime of this noise module unless another displacement module replaces it. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="displace_8h-source.html">displace.h</a><li>displace.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 460 bytes)
@@ -0,0 +1,132 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Exponent Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Exponent.html">noise::module::Exponent</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Exponent.html#a0">Exponent</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Exponent.html">noise::module::Exponent</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Exponent.html#a1">GetExponent</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Exponent.html">noise::module::Exponent</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Exponent.html#a2">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Exponent.html">noise::module::Exponent</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Exponent.html#a3">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Exponent.html">noise::module::Exponent</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Exponent.html#p0">m_exponent</a></td><td><a class="el" href="classnoise_1_1module_1_1Exponent.html">noise::module::Exponent</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Exponent.html#a4">SetExponent</a>(double exponent)</td><td><a class="el" href="classnoise_1_1module_1_1Exponent.html">noise::module::Exponent</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,351 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Exponent Class Reference<br>+<small>+[<a class="el" href="group__modifiermodules.html">Modifier Modules</a>]</small>+</h1><code>#include <<a class="el" href="exponent_8h-source.html">exponent.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Exponent:+<p><center><img src="classnoise_1_1module_1_1Exponent.png" usemap="#noise::module::Exponent_map" border="0" alt=""></center>+<map name="noise::module::Exponent_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,146,24">+</map>+<a href="classnoise_1_1module_1_1Exponent-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that maps the output value from a source module onto an exponential curve. +<p>+<div align="center">+<img src="moduleexponent.png" alt="moduleexponent.png">+</div>+<p>+Because most noise modules will output values that range from -1.0 to +1.0, this noise module first normalizes this output value (the range becomes 0.0 to 1.0), maps that value onto an exponential curve, then rescales that value back to the original range.<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Exponent.html#a0">Exponent</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Exponent.html#a1">GetExponent</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the exponent value to apply to the output value from the source module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Exponent.html#a2">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Exponent.html#a3">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Exponent.html#a4">SetExponent</a> (double exponent)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the exponent value to apply to the output value from the source module. <a href="#a4"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Exponent::m_exponent"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Exponent.html#p0">m_exponent</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classnoise_1_1module_1_1Exponent.html">Exponent</a> to apply to the output value from the source module. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::Exponent::Exponent"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Exponent::Exponent </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default exponent is set to <a class="el" href="group__modifiermodules.html#ga2">noise::module::DEFAULT_EXPONENT</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Exponent::GetExponent"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Exponent::GetExponent </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the exponent value to apply to the output value from the source module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The exponent value.</dd></dl>+Because most noise modules will output values that range from -1.0 to +1.0, this noise module first normalizes this output value (the range becomes 0.0 to 1.0), maps that value onto an exponential curve, then rescales that value back to the original range. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Exponent::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Exponent::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Exponent::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Exponent::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Exponent.html#a2">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Exponent::SetExponent"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Exponent::SetExponent </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>exponent</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the exponent value to apply to the output value from the source module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>exponent</em> </td><td>The exponent value.</td></tr>+ </table>+</dl>+Because most noise modules will output values that range from -1.0 to +1.0, this noise module first normalizes this output value (the range becomes 0.0 to 1.0), maps that value onto an exponential curve, then rescales that value back to the original range. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="exponent_8h-source.html">exponent.h</a><li>exponent.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 456 bytes)
@@ -0,0 +1,129 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Invert Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Invert.html">noise::module::Invert</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Invert.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Invert.html">noise::module::Invert</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Invert.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Invert.html">noise::module::Invert</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Invert.html#a0">Invert</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Invert.html">noise::module::Invert</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,245 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Invert Class Reference<br>+<small>+[<a class="el" href="group__modifiermodules.html">Modifier Modules</a>]</small>+</h1><code>#include <<a class="el" href="invert_8h-source.html">invert.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Invert:+<p><center><img src="classnoise_1_1module_1_1Invert.png" usemap="#noise::module::Invert_map" border="0" alt=""></center>+<map name="noise::module::Invert_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Invert-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that inverts the output value from a source module. +<p>+<div align="center">+<img src="moduleinvert.png" alt="moduleinvert.png">+</div>+<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Invert::Invert"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Invert.html#a0">Invert</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Invert.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Invert.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Invert::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Invert::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Invert::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Invert::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Invert.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="invert_8h-source.html">invert.h</a><li>invert.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 442 bytes)
@@ -0,0 +1,129 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Max Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Max.html">noise::module::Max</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Max.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Max.html">noise::module::Max</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Max.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Max.html">noise::module::Max</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Max.html#a0">Max</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Max.html">noise::module::Max</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,245 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Max Class Reference<br>+<small>+[<a class="el" href="group__combinermodules.html">Combiner Modules</a>]</small>+</h1><code>#include <<a class="el" href="max_8h-source.html">max.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Max:+<p><center><img src="classnoise_1_1module_1_1Max.png" usemap="#noise::module::Max_map" border="0" alt=""></center>+<map name="noise::module::Max_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Max-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs the larger of the two output values from two source modules. +<p>+<div align="center">+<img src="modulemax.png" alt="modulemax.png">+</div>+<p>+This noise module requires two source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Max::Max"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Max.html#a0">Max</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Max.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Max.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Max::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Max::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Max::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Max::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Max.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="max_8h-source.html">max.h</a><li>max.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 439 bytes)
@@ -0,0 +1,129 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Min Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Min.html">noise::module::Min</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Min.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Min.html">noise::module::Min</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Min.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Min.html">noise::module::Min</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Min.html#a0">Min</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Min.html">noise::module::Min</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,245 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Min Class Reference<br>+<small>+[<a class="el" href="group__combinermodules.html">Combiner Modules</a>]</small>+</h1><code>#include <<a class="el" href="min_8h-source.html">min.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Min:+<p><center><img src="classnoise_1_1module_1_1Min.png" usemap="#noise::module::Min_map" border="0" alt=""></center>+<map name="noise::module::Min_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Min-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs the smaller of the two output values from two source modules. +<p>+<div align="center">+<img src="modulemin.png" alt="modulemin.png">+</div>+<p>+This noise module requires two source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Min::Min"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Min.html#a0">Min</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Min.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Min.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Min::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Min::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Min::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Min::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Min.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="min_8h-source.html">min.h</a><li>min.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 421 bytes)
@@ -0,0 +1,128 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Module Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a3">GetSourceModuleCount</a>() const =0</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [pure virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a4">GetValue</a>(double x, double y, double z) const =0</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [pure virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,440 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Module Class Reference<br>+<small>+[<a class="el" href="group__modules.html">Noise Modules</a>]</small>+</h1><code>#include <<a class="el" href="modulebase_8h-source.html">modulebase.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Module:+<p><center><img src="classnoise_1_1module_1_1Module.png" usemap="#noise::module::Module_map" border="0" alt=""></center>+<map name="noise::module::Module_map">+<area href="classnoise_1_1module_1_1Abs.html" alt="noise::module::Abs" shape="rect" coords="185,56,360,80">+<area href="classnoise_1_1module_1_1Add.html" alt="noise::module::Add" shape="rect" coords="185,112,360,136">+<area href="classnoise_1_1module_1_1Billow.html" alt="noise::module::Billow" shape="rect" coords="185,168,360,192">+<area href="classnoise_1_1module_1_1Blend.html" alt="noise::module::Blend" shape="rect" coords="185,224,360,248">+<area href="classnoise_1_1module_1_1Cache.html" alt="noise::module::Cache" shape="rect" coords="185,280,360,304">+<area href="classnoise_1_1module_1_1Checkerboard.html" alt="noise::module::Checkerboard" shape="rect" coords="185,336,360,360">+<area href="classnoise_1_1module_1_1Clamp.html" alt="noise::module::Clamp" shape="rect" coords="185,392,360,416">+<area href="classnoise_1_1module_1_1Const.html" alt="noise::module::Const" shape="rect" coords="185,448,360,472">+<area href="classnoise_1_1module_1_1Curve.html" alt="noise::module::Curve" shape="rect" coords="185,504,360,528">+<area href="classnoise_1_1module_1_1Cylinders.html" alt="noise::module::Cylinders" shape="rect" coords="185,560,360,584">+<area href="classnoise_1_1module_1_1Displace.html" alt="noise::module::Displace" shape="rect" coords="185,616,360,640">+<area href="classnoise_1_1module_1_1Exponent.html" alt="noise::module::Exponent" shape="rect" coords="185,672,360,696">+<area href="classnoise_1_1module_1_1Invert.html" alt="noise::module::Invert" shape="rect" coords="185,728,360,752">+<area href="classnoise_1_1module_1_1Max.html" alt="noise::module::Max" shape="rect" coords="185,784,360,808">+<area href="classnoise_1_1module_1_1Min.html" alt="noise::module::Min" shape="rect" coords="185,840,360,864">+<area href="classnoise_1_1module_1_1Multiply.html" alt="noise::module::Multiply" shape="rect" coords="185,896,360,920">+<area href="classnoise_1_1module_1_1Perlin.html" alt="noise::module::Perlin" shape="rect" coords="185,952,360,976">+<area href="classnoise_1_1module_1_1Power.html" alt="noise::module::Power" shape="rect" coords="185,1008,360,1032">+<area href="classnoise_1_1module_1_1RidgedMulti.html" alt="noise::module::RidgedMulti" shape="rect" coords="185,1064,360,1088">+<area href="classnoise_1_1module_1_1RotatePoint.html" alt="noise::module::RotatePoint" shape="rect" coords="185,1120,360,1144">+<area href="classnoise_1_1module_1_1ScaleBias.html" alt="noise::module::ScaleBias" shape="rect" coords="185,1176,360,1200">+<area href="classnoise_1_1module_1_1ScalePoint.html" alt="noise::module::ScalePoint" shape="rect" coords="185,1232,360,1256">+<area href="classnoise_1_1module_1_1Select.html" alt="noise::module::Select" shape="rect" coords="185,1288,360,1312">+<area href="classnoise_1_1module_1_1Spheres.html" alt="noise::module::Spheres" shape="rect" coords="185,1344,360,1368">+<area href="classnoise_1_1module_1_1Terrace.html" alt="noise::module::Terrace" shape="rect" coords="185,1400,360,1424">+<area href="classnoise_1_1module_1_1TranslatePoint.html" alt="noise::module::TranslatePoint" shape="rect" coords="185,1456,360,1480">+<area href="classnoise_1_1module_1_1Turbulence.html" alt="noise::module::Turbulence" shape="rect" coords="185,1512,360,1536">+<area href="classnoise_1_1module_1_1Voronoi.html" alt="noise::module::Voronoi" shape="rect" coords="185,1568,360,1592">+</map>+<a href="classnoise_1_1module_1_1Module-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Abstract base class for noise modules. +<p>+A <em>noise module</em> is an object that calculates and outputs a value given a three-dimensional input value.<p>+Each type of noise module uses a specific method to calculate an output value. Some of these methods include:<p>+<ul>+<li>Calculating a value using a coherent-noise function or some other mathematical function.</li><li>Mathematically changing the output value from another noise module in various ways.</li><li>Combining the output values from two noise modules in various ways.</li></ul>+<p>+An application can use the output values from these noise modules in the following ways:<p>+<ul>+<li>It can be used as an elevation value for a terrain height map</li><li>It can be used as a grayscale (or an RGB-channel) value for a procedural texture</li><li>It can be used as a position value for controlling the movement of a simulated lifeform.</li></ul>+<p>+A noise module defines a near-infinite 3-dimensional texture. Each position in this "texture" has a specific value.<p>+<b>Combining noise modules</b><p>+Noise modules can be combined with other noise modules to generate complex output values. A noise module that is used as a source of output values for another noise module is called a <em>source module</em>. Each of these source modules may be connected to other source modules, and so on.<p>+There is no limit to the number of noise modules that can be connected together in this way. However, each connected noise module increases the time required to calculate an output value.<p>+<b>Noise-module categories</b><p>+The noise module classes that are included in libnoise can be roughly divided into five categories.<p>+<em>Generator Modules</em><p>+A generator module outputs a value generated by a coherent-noise function or some other mathematical function.<p>+Examples of generator modules include:<ul>+<li><a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a>: Outputs a constant value.</li><li><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a>: Outputs a value generated by a Perlin-noise function.</li><li><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a>: Outputs a value generated by a Voronoi-cell function.</li></ul>+<p>+<em>Modifier Modules</em><p>+A modifer module mathematically modifies the output value from a source module.<p>+Examples of modifier modules include:<ul>+<li><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a>: Maps the output value from the source module onto an arbitrary function curve.</li><li><a class="el" href="classnoise_1_1module_1_1Invert.html">noise::module::Invert</a>: Inverts the output value from the source module.</li></ul>+<p>+<em>Combiner Modules</em><p>+A combiner module mathematically combines the output values from two or more source modules together.<p>+Examples of combiner modules include:<ul>+<li><a class="el" href="classnoise_1_1module_1_1Add.html">noise::module::Add</a>: Adds the two output values from two source modules.</li><li><a class="el" href="classnoise_1_1module_1_1Max.html">noise::module::Max</a>: Outputs the larger of the two output values from two source modules.</li></ul>+<p>+<em>Selector Modules</em><p>+A selector module uses the output value from a <em>control module</em> to specify how to combine the output values from its source modules.<p>+Examples of selector modules include:<ul>+<li><a class="el" href="classnoise_1_1module_1_1Blend.html">noise::module::Blend</a>: Outputs a value that is linearly interpolated between the output values from two source modules; the interpolation weight is determined by the output value from the control module.</li><li><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a>: Outputs the value selected from one of two source modules chosen by the output value from a control module.</li></ul>+<p>+<em>Transformer Modules</em><p>+A transformer module applies a transformation to the coordinates of the input value before retrieving the output value from the source module. A transformer module does not modify the output value.<p>+Examples of transformer modules include:<ul>+<li><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">RotatePoint</a>: Rotates the coordinates of the input value around the origin before retrieving the output value from the source module.</li><li><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">ScalePoint</a>: Multiplies each coordinate of the input value by a constant value before retrieving the output value from the source module.</li></ul>+<p>+<b>Connecting source modules to a noise module</b><p>+An application connects a source module to a noise module by passing the source module to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.<p>+The application must also pass an <em>index value</em> to <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> as well. An index value is a numeric identifier for that source module. Index values are consecutively numbered starting at zero.<p>+To retrieve a reference to a source module, pass its index value to the <a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule()</a> method.<p>+Each noise module requires the attachment of a certain number of source modules before it can output a value. For example, the <a class="el" href="classnoise_1_1module_1_1Add.html">noise::module::Add</a> module requires two source modules, while the <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> module requires none. Call the <a class="el" href="classnoise_1_1module_1_1Module.html#a3">GetSourceModuleCount()</a> method to retrieve the number of source modules required by that module.<p>+For non-selector modules, it usually does not matter which index value an application assigns to a particular source module, but for selector modules, the purpose of a source module is defined by its index value. For example, consider the <a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a> noise module, which requires three source modules. The control module is the source module assigned an index value of 2. The control module determines whether the noise module will output the value from the source module assigned an index value of 0 or the output value from the source module assigned an index value of 1.<p>+<b>Generating output values with a noise module</b><p>+Once an application has connected all required source modules to a noise module, the application can now begin to generate output values with that noise module.<p>+To generate an output value, pass the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of an input value to the <a class="el" href="classnoise_1_1module_1_1Module.html#a4">GetValue()</a> method.<p>+<b>Using a noise module to generate terrain height maps or textures</b><p>+One way to generate a terrain height map or a texture is to first allocate a 2-dimensional array of floating-point values. For each array element, pass the array subscripts as <em>x</em> and <em>y</em> coordinates to the <a class="el" href="classnoise_1_1module_1_1Module.html#a4">GetValue()</a> method (leaving the <em>z</em> coordinate set to zero) and place the resulting output value into the array element.<p>+<b>Creating your own noise modules</b><p>+Create a class that publicly derives from noise::module::Module.<p>+In the constructor, call the base class' constructor while passing the return value from <a class="el" href="classnoise_1_1module_1_1Module.html#a3">GetSourceModuleCount()</a> to it.<p>+Override the <a class="el" href="classnoise_1_1module_1_1Module.html#a3">GetSourceModuleCount()</a> pure virtual method. From this method, return the number of source modules required by your noise module.<p>+Override the <a class="el" href="classnoise_1_1module_1_1Module.html#a4">GetValue()</a> pure virtual method. For generator modules, calculate and output a value given the coordinates of the input value. For other modules, retrieve the output values from each source module referenced in the protected <em>m_pSourceModule</em> array, mathematically combine those values, and return the combined value.<p>+When developing a noise module, you must ensure that your noise module does not modify any source module or control module connected to it; a noise module can only modify the output value from those source modules. You must also ensure that if an application fails to connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method and then attempts to call the <a class="el" href="classnoise_1_1module_1_1Module.html#a4">GetValue()</a> method, your module will raise an assertion.<p>+It shouldn't be too difficult to create your own noise module. If you still have some problems, take a look at the source code for <a class="el" href="classnoise_1_1module_1_1Add.html">noise::module::Add</a>, which is a very simple noise module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Module::Module"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a> (int sourceModuleCount)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1" doxytag="noise::module::Module::~Module"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a> (int index) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a reference to a source module connected to this noise module. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Module.html#a3">GetSourceModuleCount</a> () const =0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Module.html#a4">GetValue</a> (double x, double y, double z) const =0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a> (int index, const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &sourceModule)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Connects a source module to this noise module. <a href="#a5"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Module::m_pSourceModule"></a>+const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> ** </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">An array containing the pointers to each source module required by this noise module. <br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a2" doxytag="noise::module::Module::GetSourceModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a>& noise::module::Module::GetSourceModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname1" valign="top" nowrap> <em>index</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns a reference to a source module connected to this noise module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>The index value assigned to the source module.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>A reference to the source module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>The index value ranges from 0 to one less than the number of source modules required by this noise module. <p>+A source module with the specified index value has been added to this noise module via a call to <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a>.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionNoModule</em> </td><td>See the preconditions for more information.</td></tr>+ </table>+</dl>+Each noise module requires the attachment of a certain number of source modules before an application can call the <a class="el" href="classnoise_1_1module_1_1Module.html#a4">GetValue()</a> method. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Module::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Module::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [pure virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implemented in <a class="el" href="classnoise_1_1module_1_1Abs.html#a1">noise::module::Abs</a>, <a class="el" href="classnoise_1_1module_1_1Add.html#a1">noise::module::Add</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a7">noise::module::Billow</a>, <a class="el" href="classnoise_1_1module_1_1Blend.html#a2">noise::module::Blend</a>, <a class="el" href="classnoise_1_1module_1_1Cache.html#a1">noise::module::Cache</a>, <a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a1">noise::module::Checkerboard</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a2">noise::module::Clamp</a>, <a class="el" href="classnoise_1_1module_1_1Const.html#a2">noise::module::Const</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a6">noise::module::Curve</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a2">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Displace.html#a1">noise::module::Displace</a>, <a class="el" href="classnoise_1_1module_1_1Exponent.html#a2">noise::module::Exponent</a>, <a class="el" href="classnoise_1_1module_1_1Invert.html#a1">noise::module::Invert</a>, <a class="el" href="classnoise_1_1module_1_1Max.html#a1">noise::module::Max</a>, <a class="el" href="classnoise_1_1module_1_1Min.html#a1">noise::module::Min</a>, <a class="el" href="classnoise_1_1module_1_1Multiply.html#a1">noise::module::Multiply</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a7">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Power.html#a1">noise::module::Power</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a6">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a1">noise::module::RotatePoint</a>, <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a3">noise::module::ScaleBias</a>, <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a1">noise::module::ScalePoint</a>, <a class="el" href="classnoise_1_1module_1_1Select.html#a4">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#a2">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1Terrace.html#a6">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a1">noise::module::TranslatePoint</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a5">noise::module::Turbulence</a>, and <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a4">noise::module::Voronoi</a>. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Module::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual double noise::module::Module::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [pure virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Module.html#a3">GetSourceModuleCount()</a> method. +<p>+Implemented in <a class="el" href="classnoise_1_1module_1_1Abs.html#a2">noise::module::Abs</a>, <a class="el" href="classnoise_1_1module_1_1Add.html#a2">noise::module::Add</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a8">noise::module::Billow</a>, <a class="el" href="classnoise_1_1module_1_1Blend.html#a3">noise::module::Blend</a>, <a class="el" href="classnoise_1_1module_1_1Cache.html#a2">noise::module::Cache</a>, <a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a2">noise::module::Checkerboard</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a4">noise::module::Clamp</a>, <a class="el" href="classnoise_1_1module_1_1Const.html#a3">noise::module::Const</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a7">noise::module::Curve</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a3">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Displace.html#a2">noise::module::Displace</a>, <a class="el" href="classnoise_1_1module_1_1Exponent.html#a3">noise::module::Exponent</a>, <a class="el" href="classnoise_1_1module_1_1Invert.html#a2">noise::module::Invert</a>, <a class="el" href="classnoise_1_1module_1_1Max.html#a2">noise::module::Max</a>, <a class="el" href="classnoise_1_1module_1_1Min.html#a2">noise::module::Min</a>, <a class="el" href="classnoise_1_1module_1_1Multiply.html#a2">noise::module::Multiply</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a8">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Power.html#a2">noise::module::Power</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a7">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a2">noise::module::RotatePoint</a>, <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a4">noise::module::ScaleBias</a>, <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a2">noise::module::ScalePoint</a>, <a class="el" href="classnoise_1_1module_1_1Select.html#a6">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#a3">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1Terrace.html#a9">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a2">noise::module::TranslatePoint</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a6">noise::module::Turbulence</a>, and <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a7">noise::module::Voronoi</a>. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::Module::SetSourceModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual void noise::module::Module::SetSourceModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname" nowrap> <em>index</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td>+ <td class="mdname" nowrap> <em>sourceModule</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"><code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Connects a source module to this noise module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>An index value to assign to this source module. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>sourceModule</em> </td><td>The source module to attach.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Precondition:</b></dt><dd>The index value ranges from 0 to one less than the number of source modules required by this noise module.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+A noise module mathematically combines the output values from the source modules to generate the value returned by <a class="el" href="classnoise_1_1module_1_1Module.html#a4">GetValue()</a>.<p>+The index value to assign a source module is a unique identifier for that source module. If an index value has already been assigned to a source module, this noise module replaces the old source module with the new source module.<p>+Before an application can call the <a class="el" href="classnoise_1_1module_1_1Module.html#a4">GetValue()</a> method, it must first connect all required source modules. To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Module.html#a3">GetSourceModuleCount()</a> method.<p>+This source module must exist throughout the lifetime of this noise module unless another source module replaces that source module.<p>+A noise module does not modify a source module; it only modifies its output values. +<p>+Reimplemented in <a class="el" href="classnoise_1_1module_1_1Cache.html#a3">noise::module::Cache</a>. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="modulebase_8h-source.html">modulebase.h</a><li>modulebase.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 5096 bytes)
@@ -0,0 +1,129 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Multiply Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Multiply.html">noise::module::Multiply</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Multiply.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Multiply.html">noise::module::Multiply</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Multiply.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Multiply.html">noise::module::Multiply</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Multiply.html#a0">Multiply</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Multiply.html">noise::module::Multiply</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,245 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Multiply Class Reference<br>+<small>+[<a class="el" href="group__combinermodules.html">Combiner Modules</a>]</small>+</h1><code>#include <<a class="el" href="multiply_8h-source.html">multiply.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Multiply:+<p><center><img src="classnoise_1_1module_1_1Multiply.png" usemap="#noise::module::Multiply_map" border="0" alt=""></center>+<map name="noise::module::Multiply_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,138,24">+</map>+<a href="classnoise_1_1module_1_1Multiply-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs the product of the two output values from two source modules. +<p>+<div align="center">+<img src="modulemultiply.png" alt="modulemultiply.png">+</div>+<p>+This noise module requires two source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Multiply::Multiply"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Multiply.html#a0">Multiply</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Multiply.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Multiply.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Multiply::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Multiply::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Multiply::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Multiply::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Multiply.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="multiply_8h-source.html">multiply.h</a><li>multiply.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 457 bytes)
@@ -0,0 +1,147 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Perlin Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a1">GetFrequency</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a2">GetLacunarity</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a3">GetNoiseQuality</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a4">GetOctaveCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a5">GetPersistence</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a6">GetSeed</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a7">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a8">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#p0">m_frequency</a></td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#p1">m_lacunarity</a></td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#p2">m_noiseQuality</a></td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#p3">m_octaveCount</a></td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#p4">m_persistence</a></td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#p5">m_seed</a></td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a0">Perlin</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a9">SetFrequency</a>(double frequency)</td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a10">SetLacunarity</a>(double lacunarity)</td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a11">SetNoiseQuality</a>(noise::NoiseQuality noiseQuality)</td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a12">SetOctaveCount</a>(int octaveCount)</td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a13">SetPersistence</a>(double persistence)</td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Perlin.html#a14">SetSeed</a>(int seed)</td><td><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,761 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Perlin Class Reference<br>+<small>+[<a class="el" href="group__generatormodules.html">Generator Modules</a>]</small>+</h1><code>#include <<a class="el" href="perlin_8h-source.html">perlin.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Perlin:+<p><center><img src="classnoise_1_1module_1_1Perlin.png" usemap="#noise::module::Perlin_map" border="0" alt=""></center>+<map name="noise::module::Perlin_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Perlin-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs 3-dimensional <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. +<p>+<div align="center">+<img src="moduleperlin.png" alt="moduleperlin.png">+</div>+<p>+<a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise is the sum of several coherent-noise functions of ever-increasing frequencies and ever-decreasing amplitudes.<p>+An important property of <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise is that a small change in the input value will produce a small change in the output value, while a large change in the input value will produce a random change in the output value.<p>+This noise module outputs Perlin-noise values that usually range from -1.0 to +1.0, but there are no guarantees that all output values will exist within that range.<p>+For a better description of <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise, see the links in the <em>References and Acknowledgments</em> section.<p>+This noise module does not require any source modules.<p>+<b>Octaves</b><p>+The number of octaves control the <em>amount of detail</em> of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. Adding more octaves increases the detail of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise, but with the drawback of increasing the calculation time.<p>+An octave is one of the coherent-noise functions in a series of coherent-noise functions that are added together to form <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.<p>+An application may specify the frequency of the first octave by calling the <a class="el" href="classnoise_1_1module_1_1Perlin.html#a9">SetFrequency()</a> method.<p>+An application may specify the number of octaves that generate <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise by calling the <a class="el" href="classnoise_1_1module_1_1Perlin.html#a12">SetOctaveCount()</a> method.<p>+These coherent-noise functions are called octaves because each octave has, by default, double the frequency of the previous octave. Musical tones have this property as well; a musical C tone that is one octave higher than the previous C tone has double its frequency.<p>+<b>Frequency</b><p>+An application may specify the frequency of the first octave by calling the <a class="el" href="classnoise_1_1module_1_1Perlin.html#a9">SetFrequency()</a> method.<p>+<b>Persistence</b><p>+The persistence value controls the <em>roughness</em> of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. Larger values produce rougher noise.<p>+The persistence value determines how quickly the amplitudes diminish for successive octaves. The amplitude of the first octave is 1.0. The amplitude of each subsequent octave is equal to the product of the previous octave's amplitude and the persistence value. So a persistence value of 0.5 sets the amplitude of the first octave to 1.0; the second, 0.5; the third, 0.25; etc.<p>+An application may specify the persistence value by calling the <a class="el" href="classnoise_1_1module_1_1Perlin.html#a13">SetPersistence()</a> method.<p>+<b>Lacunarity</b><p>+The lacunarity specifies the frequency multipler between successive octaves.<p>+The effect of modifying the lacunarity is subtle; you may need to play with the lacunarity value to determine the effects. For best results, set the lacunarity to a number between 1.5 and 3.5.<p>+<b>References & acknowledgments</b><p>+<a href="http://www.noisemachine.com/talk1/">The Noise Machine</a> - From the master, Ken <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> himself. This page contains a presentation that describes <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise and some of its variants. He won an Oscar for creating the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise algorithm!<p>+<a href="http://freespace.virgin.net/hugo.elias/models/m_perlin.htm">Perlin Noise</a> - Hugo Elias's webpage contains a very good description of <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise and describes its many applications. This page gave me the inspiration to create libnoise in the first place. Now that I know how to generate <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise, I will never again use cheesy subdivision algorithms to create terrain (unless I absolutely need the speed.)<p>+<a href="http://www.robo-murito.net/code/perlin-noise-math-faq.html">The Perlin noise math FAQ</a> - A good page that describes <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise in plain English with only a minor amount of math. During development of libnoise, I noticed that my coherent-noise function generated terrain with some "regularity" to the terrain features. This page describes a better coherent-noise function called <em>gradient noise</em>. This version of noise::module::Perlin uses gradient coherent noise to generate <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a0">Perlin</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a1">GetFrequency</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the frequency of the first octave. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a2">GetLacunarity</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a3">GetNoiseQuality</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a4">GetOctaveCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a5">GetPersistence</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a6">GetSeed</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the seed value used by the Perlin-noise function. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a7">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a8">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a8"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a9">SetFrequency</a> (double frequency)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the frequency of the first octave. <a href="#a9"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a10">SetLacunarity</a> (double lacunarity)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <a href="#a10"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a11">SetNoiseQuality</a> (<a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> noiseQuality)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <a href="#a11"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a12">SetOctaveCount</a> (int octaveCount)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <a href="#a12"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a13">SetPersistence</a> (double persistence)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <a href="#a13"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#a14">SetSeed</a> (int seed)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the seed value used by the Perlin-noise function. <a href="#a14"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Perlin::m_frequency"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p0">m_frequency</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Frequency of the first octave. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::Perlin::m_lacunarity"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p1">m_lacunarity</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Frequency multiplier between successive octaves. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::Perlin::m_noiseQuality"></a>+<a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p2">m_noiseQuality</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p3" doxytag="noise::module::Perlin::m_octaveCount"></a>+int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p3">m_octaveCount</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Total number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p4" doxytag="noise::module::Perlin::m_persistence"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p4">m_persistence</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Persistence of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p5" doxytag="noise::module::Perlin::m_seed"></a>+int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html#p5">m_seed</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Seed value used by the Perlin-noise function. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::Perlin::Perlin"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Perlin::Perlin </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default frequency is set to <a class="el" href="group__generatormodules.html#ga9">noise::module::DEFAULT_PERLIN_FREQUENCY</a>.<p>+The default lacunarity is set to <a class="el" href="group__generatormodules.html#ga10">noise::module::DEFAULT_PERLIN_LACUNARITY</a>.<p>+The default number of octaves is set to <a class="el" href="group__generatormodules.html#ga11">noise::module::DEFAULT_PERLIN_OCTAVE_COUNT</a>.<p>+The default persistence value is set to <a class="el" href="group__generatormodules.html#ga12">noise::module::DEFAULT_PERLIN_PERSISTENCE</a>.<p>+The default seed value is set to <a class="el" href="group__generatormodules.html#ga14">noise::module::DEFAULT_PERLIN_SEED</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Perlin::GetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Perlin::GetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the frequency of the first octave. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The frequency of the first octave. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Perlin::GetLacunarity"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Perlin::GetLacunarity </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</dd></dl>+The lacunarity is the frequency multiplier between successive octaves. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Perlin::GetNoiseQuality"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> noise::module::Perlin::GetNoiseQuality </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</dd></dl>+See <a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> for definitions of the various coherent-noise qualities. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Perlin::GetOctaveCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int noise::module::Perlin::GetOctaveCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</dd></dl>+The number of octaves controls the amount of detail in the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::Perlin::GetPersistence"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Perlin::GetPersistence </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</dd></dl>+The persistence value controls the roughness of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::Perlin::GetSeed"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int noise::module::Perlin::GetSeed </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the seed value used by the Perlin-noise function. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The seed value. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::Perlin::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Perlin::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::module::Perlin::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Perlin::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Perlin.html#a7">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a9" doxytag="noise::module::Perlin::SetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Perlin::SetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>frequency</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the frequency of the first octave. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>frequency</em> </td><td>The frequency of the first octave. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a10" doxytag="noise::module::Perlin::SetLacunarity"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Perlin::SetLacunarity </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>lacunarity</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>lacunarity</em> </td><td>The lacunarity of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</td></tr>+ </table>+</dl>+The lacunarity is the frequency multiplier between successive octaves.<p>+For best results, set the lacunarity to a number between 1.5 and 3.5. </td>+ </tr>+</table>+<a class="anchor" name="a11" doxytag="noise::module::Perlin::SetNoiseQuality"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Perlin::SetNoiseQuality </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td>+ <td class="mdname1" valign="top" nowrap> <em>noiseQuality</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noiseQuality</em> </td><td>The quality of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</td></tr>+ </table>+</dl>+See <a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> for definitions of the various coherent-noise qualities. </td>+ </tr>+</table>+<a class="anchor" name="a12" doxytag="noise::module::Perlin::SetOctaveCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Perlin::SetOctaveCount </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname1" valign="top" nowrap> <em>octaveCount</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>octaveCount</em> </td><td>The number of octaves that generate the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Precondition:</b></dt><dd>The number of octaves ranges from 1 to <a class="el" href="group__generatormodules.html#ga15">noise::module::PERLIN_MAX_OCTAVE</a>.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+The number of octaves controls the amount of detail in the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.<p>+The larger the number of octaves, the more time required to calculate the Perlin-noise value. </td>+ </tr>+</table>+<a class="anchor" name="a13" doxytag="noise::module::Perlin::SetPersistence"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Perlin::SetPersistence </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>persistence</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>persistence</em> </td><td>The persistence value of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.</td></tr>+ </table>+</dl>+The persistence value controls the roughness of the <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise.<p>+For best results, set the persistence to a number between 0.0 and 1.0. </td>+ </tr>+</table>+<a class="anchor" name="a14" doxytag="noise::module::Perlin::SetSeed"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Perlin::SetSeed </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname1" valign="top" nowrap> <em>seed</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the seed value used by the Perlin-noise function. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>The seed value. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="perlin_8h-source.html">perlin.h</a><li>perlin.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 441 bytes)
@@ -0,0 +1,129 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Power Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Power.html">noise::module::Power</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Power.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Power.html">noise::module::Power</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Power.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Power.html">noise::module::Power</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Power.html#a0">Power</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Power.html">noise::module::Power</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,247 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Power Class Reference<br>+<small>+[<a class="el" href="group__combinermodules.html">Combiner Modules</a>]</small>+</h1><code>#include <<a class="el" href="power_8h-source.html">power.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Power:+<p><center><img src="classnoise_1_1module_1_1Power.png" usemap="#noise::module::Power_map" border="0" alt=""></center>+<map name="noise::module::Power_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Power-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that raises the output value from a first source module to the power of the output value from a second source module. +<p>+<div align="center">+<img src="modulepower.png" alt="modulepower.png">+</div>+<p>+The first source module must have an index value of 0.<p>+The second source module must have an index value of 1.<p>+This noise module requires two source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Power::Power"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Power.html#a0">Power</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Power.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Power.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Power::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Power::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Power::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Power::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Power.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="power_8h-source.html">power.h</a><li>power.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 449 bytes)
@@ -0,0 +1,146 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::RidgedMulti Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#b0">CalcSpectralWeights</a>()</td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a1">GetFrequency</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a2">GetLacunarity</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a3">GetNoiseQuality</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a4">GetOctaveCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a5">GetSeed</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a6">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a7">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p0">m_frequency</a></td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p1">m_lacunarity</a></td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p2">m_noiseQuality</a></td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p3">m_octaveCount</a></td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p4">m_pSpectralWeights</a></td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p5">m_seed</a></td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a0">RidgedMulti</a>()</td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a8">SetFrequency</a>(double frequency)</td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a9">SetLacunarity</a>(double lacunarity)</td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a10">SetNoiseQuality</a>(noise::NoiseQuality noiseQuality)</td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a11">SetOctaveCount</a>(int octaveCount)</td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a12">SetSeed</a>(int seed)</td><td><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,713 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::RidgedMulti Class Reference<br>+<small>+[<a class="el" href="group__generatormodules.html">Generator Modules</a>]</small>+</h1><code>#include <<a class="el" href="ridgedmulti_8h-source.html">ridgedmulti.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::RidgedMulti:+<p><center><img src="classnoise_1_1module_1_1RidgedMulti.png" usemap="#noise::module::RidgedMulti_map" border="0" alt=""></center>+<map name="noise::module::RidgedMulti_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,160,24">+</map>+<a href="classnoise_1_1module_1_1RidgedMulti-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs 3-dimensional ridged-multifractal noise. +<p>+<div align="center">+<img src="moduleridgedmulti.png" alt="moduleridgedmulti.png">+</div>+<p>+This noise module, heavily based on the Perlin-noise module, generates ridged-multifractal noise. Ridged-multifractal noise is generated in much of the same way as <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise, except the output of each octave is modified by an absolute-value function. Modifying the octave values in this way produces ridge-like formations.<p>+Ridged-multifractal noise does not use a persistence value. This is because the persistence values of the octaves are based on the values generated from from previous octaves, creating a feedback loop (or that's what it looks like after reading the code.)<p>+This noise module outputs ridged-multifractal-noise values that usually range from -1.0 to +1.0, but there are no guarantees that all output values will exist within that range.<p>+<dl compact><dt><b>Note:</b></dt><dd>For ridged-multifractal noise generated with only one octave, the output value ranges from -1.0 to 0.0.</dd></dl>+Ridged-multifractal noise is often used to generate craggy mountainous terrain or marble-like textures.<p>+This noise module does not require any source modules.<p>+<b>Octaves</b><p>+The number of octaves control the <em>amount of detail</em> of the ridged-multifractal noise. Adding more octaves increases the detail of the ridged-multifractal noise, but with the drawback of increasing the calculation time.<p>+An application may specify the number of octaves that generate ridged-multifractal noise by calling the <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a11">SetOctaveCount()</a> method.<p>+<b>Frequency</b><p>+An application may specify the frequency of the first octave by calling the <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a8">SetFrequency()</a> method.<p>+<b>Lacunarity</b><p>+The lacunarity specifies the frequency multipler between successive octaves.<p>+The effect of modifying the lacunarity is subtle; you may need to play with the lacunarity value to determine the effects. For best results, set the lacunarity to a number between 1.5 and 3.5.<p>+<b>References & Acknowledgments</b><p>+<a href="http://www.texturingandmodeling.com/Musgrave.html">F. Kenton "Doc Mojo" Musgrave's texturing page</a> - This page contains links to source code that generates ridged-multfractal noise, among other types of noise. The source file <a href="http://www.texturingandmodeling.com/CODE/MUSGRAVE/CLOUD/fractal.c">fractal.c</a> contains the code I used in my ridged-multifractal class (see the <em>RidgedMultifractal()</em> function.) This code was written by F. Kenton Musgrave, the person who created <a href="http://www.pandromeda.com/">MojoWorld</a>. He is also one of the authors in <em>Texturing and Modeling: A Procedural Approach</em> (Morgan Kaufmann, 2002. ISBN 1-55860-848-6.) +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a0">RidgedMulti</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a1">GetFrequency</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the frequency of the first octave. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a2">GetLacunarity</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the lacunarity of the ridged-multifractal noise. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a3">GetNoiseQuality</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the quality of the ridged-multifractal noise. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a4">GetOctaveCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of octaves that generate the ridged-multifractal noise. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a5">GetSeed</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the seed value used by the ridged-multifractal-noise function. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a6">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a7">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a8">SetFrequency</a> (double frequency)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the frequency of the first octave. <a href="#a8"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a9">SetLacunarity</a> (double lacunarity)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the lacunarity of the ridged-multifractal noise. <a href="#a9"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a10">SetNoiseQuality</a> (<a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> noiseQuality)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the quality of the ridged-multifractal noise. <a href="#a10"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a11">SetOctaveCount</a> (int octaveCount)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the number of octaves that generate the ridged-multifractal noise. <a href="#a11"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a12">SetSeed</a> (int seed)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the seed value used by the ridged-multifractal-noise function. <a href="#a12"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#b0">CalcSpectralWeights</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates the spectral weights for each octave. <a href="#b0"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::RidgedMulti::m_frequency"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p0">m_frequency</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Frequency of the first octave. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::RidgedMulti::m_lacunarity"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p1">m_lacunarity</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Frequency multiplier between successive octaves. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::RidgedMulti::m_noiseQuality"></a>+<a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p2">m_noiseQuality</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Quality of the ridged-multifractal noise. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p3" doxytag="noise::module::RidgedMulti::m_octaveCount"></a>+int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p3">m_octaveCount</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Total number of octaves that generate the ridged-multifractal noise. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p4" doxytag="noise::module::RidgedMulti::m_pSpectralWeights"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p4">m_pSpectralWeights</a> [<a class="el" href="group__generatormodules.html#ga21">RIDGED_MAX_OCTAVE</a>]</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Contains the spectral weights for each octave. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p5" doxytag="noise::module::RidgedMulti::m_seed"></a>+int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p5">m_seed</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Seed value used by the ridged-multfractal-noise function. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::RidgedMulti::RidgedMulti"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">RidgedMulti::RidgedMulti </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default number of octaves is set to <a class="el" href="group__generatormodules.html#ga18">noise::module::DEFAULT_RIDGED_OCTAVE_COUNT</a>.<p>+The default frequency is set to <a class="el" href="group__generatormodules.html#ga16">noise::module::DEFAULT_RIDGED_FREQUENCY</a>.<p>+The default lacunarity is set to <a class="el" href="group__generatormodules.html#ga17">noise::module::DEFAULT_RIDGED_LACUNARITY</a>.<p>+The default seed value is set to <a class="el" href="group__generatormodules.html#ga20">noise::module::DEFAULT_RIDGED_SEED</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="b0" doxytag="noise::module::RidgedMulti::CalcSpectralWeights"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void RidgedMulti::CalcSpectralWeights </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [protected]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Calculates the spectral weights for each octave. +<p>+This method is called when the lacunarity changes. </td>+ </tr>+</table>+<a class="anchor" name="a1" doxytag="noise::module::RidgedMulti::GetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::RidgedMulti::GetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the frequency of the first octave. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The frequency of the first octave. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::RidgedMulti::GetLacunarity"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::RidgedMulti::GetLacunarity </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the lacunarity of the ridged-multifractal noise. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The lacunarity of the ridged-multifractal noise.</dd></dl>+The lacunarity is the frequency multiplier between successive octaves. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::RidgedMulti::GetNoiseQuality"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> noise::module::RidgedMulti::GetNoiseQuality </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the quality of the ridged-multifractal noise. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The quality of the ridged-multifractal noise.</dd></dl>+See <a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> for definitions of the various coherent-noise qualities. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::RidgedMulti::GetOctaveCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int noise::module::RidgedMulti::GetOctaveCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of octaves that generate the ridged-multifractal noise. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of octaves that generate the ridged-multifractal noise.</dd></dl>+The number of octaves controls the amount of detail in the ridged-multifractal noise. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::RidgedMulti::GetSeed"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int noise::module::RidgedMulti::GetSeed </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the seed value used by the ridged-multifractal-noise function. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The seed value. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::RidgedMulti::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::RidgedMulti::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::RidgedMulti::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double RidgedMulti::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a6">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::module::RidgedMulti::SetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::RidgedMulti::SetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>frequency</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the frequency of the first octave. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>frequency</em> </td><td>The frequency of the first octave. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a9" doxytag="noise::module::RidgedMulti::SetLacunarity"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::RidgedMulti::SetLacunarity </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>lacunarity</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the lacunarity of the ridged-multifractal noise. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>lacunarity</em> </td><td>The lacunarity of the ridged-multifractal noise.</td></tr>+ </table>+</dl>+The lacunarity is the frequency multiplier between successive octaves.<p>+For best results, set the lacunarity to a number between 1.5 and 3.5. </td>+ </tr>+</table>+<a class="anchor" name="a10" doxytag="noise::module::RidgedMulti::SetNoiseQuality"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::RidgedMulti::SetNoiseQuality </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td>+ <td class="mdname1" valign="top" nowrap> <em>noiseQuality</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the quality of the ridged-multifractal noise. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noiseQuality</em> </td><td>The quality of the ridged-multifractal noise.</td></tr>+ </table>+</dl>+See <a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> for definitions of the various coherent-noise qualities. </td>+ </tr>+</table>+<a class="anchor" name="a11" doxytag="noise::module::RidgedMulti::SetOctaveCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::RidgedMulti::SetOctaveCount </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname1" valign="top" nowrap> <em>octaveCount</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the number of octaves that generate the ridged-multifractal noise. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>octaveCount</em> </td><td>The number of octaves that generate the ridged-multifractal noise.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Precondition:</b></dt><dd>The number of octaves ranges from 1 to <a class="el" href="group__generatormodules.html#ga21">noise::module::RIDGED_MAX_OCTAVE</a>.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+The number of octaves controls the amount of detail in the ridged-multifractal noise.<p>+The larger the number of octaves, the more time required to calculate the ridged-multifractal-noise value. </td>+ </tr>+</table>+<a class="anchor" name="a12" doxytag="noise::module::RidgedMulti::SetSeed"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::RidgedMulti::SetSeed </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname1" valign="top" nowrap> <em>seed</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the seed value used by the ridged-multifractal-noise function. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>The seed value. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="ridgedmulti_8h-source.html">ridgedmulti.h</a><li>ridgedmulti.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 485 bytes)
@@ -0,0 +1,148 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::RotatePoint Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a3">GetXAngle</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a4">GetYAngle</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a5">GetZAngle</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p0">m_x1Matrix</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p1">m_x2Matrix</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p2">m_x3Matrix</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p3">m_xAngle</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p4">m_y1Matrix</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p5">m_y2Matrix</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p6">m_y3Matrix</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p7">m_yAngle</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p8">m_z1Matrix</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p9">m_z2Matrix</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p10">m_z3Matrix</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p11">m_zAngle</a></td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a0">RotatePoint</a>()</td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a6">SetAngles</a>(double xAngle, double yAngle, double zAngle)</td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a7">SetXAngle</a>(double xAngle)</td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a8">SetYAngle</a>(double yAngle)</td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a9">SetZAngle</a>(double zAngle)</td><td><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,595 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::RotatePoint Class Reference<br>+<small>+[<a class="el" href="group__transformermodules.html">Transformer Modules</a>]</small>+</h1><code>#include <<a class="el" href="rotatepoint_8h-source.html">rotatepoint.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::RotatePoint:+<p><center><img src="classnoise_1_1module_1_1RotatePoint.png" usemap="#noise::module::RotatePoint_map" border="0" alt=""></center>+<map name="noise::module::RotatePoint_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,157,24">+</map>+<a href="classnoise_1_1module_1_1RotatePoint-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that rotates the input value around the origin before returning the output value from a source module. +<p>+<div align="center">+<img src="modulerotatepoint.png" alt="modulerotatepoint.png">+</div>+<p>+The <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a2">GetValue()</a> method rotates the coordinates of the input value around the origin before returning the output value from the source module. To set the rotation angles, call the <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a6">SetAngles()</a> method. To set the rotation angle around the individual <em>x</em>, <em>y</em>, or <em>z</em> axes, call the <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a7">SetXAngle()</a>, <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a8">SetYAngle()</a> or <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a9">SetZAngle()</a> methods, respectively.<p>+The coordinate system of the input value is assumed to be "left-handed" (<em>x</em> increases to the right, <em>y</em> increases upward, and <em>z</em> increases inward.)<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a0">RotatePoint</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a3">GetXAngle</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the rotation angle around the <em>x</em> axis to apply to the input value. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a4">GetYAngle</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the rotation angle around the <em>y</em> axis to apply to the input value. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a5">GetZAngle</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the rotation angle around the <em>z</em> axis to apply to the input value. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a6">SetAngles</a> (double xAngle, double yAngle, double zAngle)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the rotation angles around all three axes to apply to the input value. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a7">SetXAngle</a> (double xAngle)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the rotation angle around the <em>x</em> axis to apply to the input value. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a8">SetYAngle</a> (double yAngle)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the rotation angle around the <em>y</em> axis to apply to the input value. <a href="#a8"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a9">SetZAngle</a> (double zAngle)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the rotation angle around the <em>z</em> axis to apply to the input value. <a href="#a9"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::RotatePoint::m_x1Matrix"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p0">m_x1Matrix</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">An entry within the 3x3 rotation matrix used for rotating the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::RotatePoint::m_x2Matrix"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p1">m_x2Matrix</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">An entry within the 3x3 rotation matrix used for rotating the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::RotatePoint::m_x3Matrix"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p2">m_x3Matrix</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">An entry within the 3x3 rotation matrix used for rotating the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p3" doxytag="noise::module::RotatePoint::m_xAngle"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p3">m_xAngle</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight"><em>x</em> rotation angle applied to the input value, in degrees. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p4" doxytag="noise::module::RotatePoint::m_y1Matrix"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p4">m_y1Matrix</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">An entry within the 3x3 rotation matrix used for rotating the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p5" doxytag="noise::module::RotatePoint::m_y2Matrix"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p5">m_y2Matrix</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">An entry within the 3x3 rotation matrix used for rotating the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p6" doxytag="noise::module::RotatePoint::m_y3Matrix"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p6">m_y3Matrix</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">An entry within the 3x3 rotation matrix used for rotating the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p7" doxytag="noise::module::RotatePoint::m_yAngle"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p7">m_yAngle</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight"><em>y</em> rotation angle applied to the input value, in degrees. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p8" doxytag="noise::module::RotatePoint::m_z1Matrix"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p8">m_z1Matrix</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">An entry within the 3x3 rotation matrix used for rotating the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p9" doxytag="noise::module::RotatePoint::m_z2Matrix"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p9">m_z2Matrix</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">An entry within the 3x3 rotation matrix used for rotating the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p10" doxytag="noise::module::RotatePoint::m_z3Matrix"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p10">m_z3Matrix</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">An entry within the 3x3 rotation matrix used for rotating the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p11" doxytag="noise::module::RotatePoint::m_zAngle"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p11">m_zAngle</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight"><em>z</em> rotation angle applied to the input value, in degrees. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::RotatePoint::RotatePoint"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">RotatePoint::RotatePoint </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default rotation angle around the <em>x</em> axis, in degrees, is set to <a class="el" href="group__transformermodules.html#ga0">noise::module::DEFAULT_ROTATE_X</a>.<p>+The default rotation angle around the <em>y</em> axis, in degrees, is set to <a class="el" href="group__transformermodules.html#ga1">noise::module::DEFAULT_ROTATE_Y</a>.<p>+The default rotation angle around the <em>z</em> axis, in degrees, is set to <a class="el" href="group__transformermodules.html#ga2">noise::module::DEFAULT_ROTATE_Z</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::RotatePoint::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::RotatePoint::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::RotatePoint::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double RotatePoint::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::RotatePoint::GetXAngle"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::RotatePoint::GetXAngle </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the rotation angle around the <em>x</em> axis to apply to the input value. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The rotation angle around the <em>x</em> axis, in degrees. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::RotatePoint::GetYAngle"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::RotatePoint::GetYAngle </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the rotation angle around the <em>y</em> axis to apply to the input value. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The rotation angle around the <em>y</em> axis, in degrees. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::RotatePoint::GetZAngle"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::RotatePoint::GetZAngle </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the rotation angle around the <em>z</em> axis to apply to the input value. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The rotation angle around the <em>z</em> axis, in degrees. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::RotatePoint::SetAngles"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void RotatePoint::SetAngles </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>xAngle</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>yAngle</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>zAngle</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the rotation angles around all three axes to apply to the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>xAngle</em> </td><td>The rotation angle around the <em>x</em> axis, in degrees. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>yAngle</em> </td><td>The rotation angle around the <em>y</em> axis, in degrees. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>zAngle</em> </td><td>The rotation angle around the <em>z</em> axis, in degrees.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a2">GetValue()</a> method rotates the coordinates of the input value around the origin before returning the output value from the source module. </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::RotatePoint::SetXAngle"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::RotatePoint::SetXAngle </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>xAngle</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the rotation angle around the <em>x</em> axis to apply to the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>xAngle</em> </td><td>The rotation angle around the <em>x</em> axis, in degrees.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a2">GetValue()</a> method rotates the coordinates of the input value around the origin before returning the output value from the source module. </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::module::RotatePoint::SetYAngle"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::RotatePoint::SetYAngle </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>yAngle</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the rotation angle around the <em>y</em> axis to apply to the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>yAngle</em> </td><td>The rotation angle around the <em>y</em> axis, in degrees.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a2">GetValue()</a> method rotates the coordinates of the input value around the origin before returning the output value from the source module. </td>+ </tr>+</table>+<a class="anchor" name="a9" doxytag="noise::module::RotatePoint::SetZAngle"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::RotatePoint::SetZAngle </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>zAngle</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the rotation angle around the <em>z</em> axis to apply to the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>zAngle</em> </td><td>The rotation angle around the <em>z</em> axis, in degrees.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a2">GetValue()</a> method rotates the coordinates of the input value around the origin before returning the output value from the source module. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="rotatepoint_8h-source.html">rotatepoint.h</a><li>rotatepoint.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 473 bytes)
@@ -0,0 +1,135 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::ScaleBias Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a1">GetBias</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a2">GetScale</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a3">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a4">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#p0">m_bias</a></td><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#p1">m_scale</a></td><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a0">ScaleBias</a>()</td><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a5">SetBias</a>(double bias)</td><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a6">SetScale</a>(double scale)</td><td><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,427 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::ScaleBias Class Reference<br>+<small>+[<a class="el" href="group__modifiermodules.html">Modifier Modules</a>]</small>+</h1><code>#include <<a class="el" href="scalebias_8h-source.html">scalebias.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::ScaleBias:+<p><center><img src="classnoise_1_1module_1_1ScaleBias.png" usemap="#noise::module::ScaleBias_map" border="0" alt=""></center>+<map name="noise::module::ScaleBias_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,150,24">+</map>+<a href="classnoise_1_1module_1_1ScaleBias-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that applies a scaling factor and a bias to the output value from a source module. +<p>+<div align="center">+<img src="modulescalebias.png" alt="modulescalebias.png">+</div>+<p>+The <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a4">GetValue()</a> method retrieves the output value from the source module, multiplies it with a scaling factor, adds a bias to it, then outputs the value.<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a0">ScaleBias</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a1">GetBias</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the bias to apply to the scaled output value from the source module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a2">GetScale</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the scaling factor to apply to the output value from the source module. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a3">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a4">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a5">SetBias</a> (double bias)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the bias to apply to the scaled output value from the source module. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a6">SetScale</a> (double scale)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the scaling factor to apply to the output value from the source module. <a href="#a6"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::ScaleBias::m_bias"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#p0">m_bias</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Bias to apply to the scaled output value from the source module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::ScaleBias::m_scale"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScaleBias.html#p1">m_scale</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Scaling factor to apply to the output value from the source module. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::ScaleBias::ScaleBias"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">ScaleBias::ScaleBias </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default bias is set to <a class="el" href="group__modifiermodules.html#ga3">noise::module::DEFAULT_BIAS</a>.<p>+The default scaling factor is set to <a class="el" href="group__modifiermodules.html#ga4">noise::module::DEFAULT_SCALE</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::ScaleBias::GetBias"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::ScaleBias::GetBias </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the bias to apply to the scaled output value from the source module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The bias to apply.</dd></dl>+The <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a4">GetValue()</a> method retrieves the output value from the source module, multiplies it with the scaling factor, adds the bias to it, then outputs the value. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::ScaleBias::GetScale"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::ScaleBias::GetScale </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the scaling factor to apply to the output value from the source module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The scaling factor to apply.</dd></dl>+The <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a4">GetValue()</a> method retrieves the output value from the source module, multiplies it with the scaling factor, adds the bias to it, then outputs the value. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::ScaleBias::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::ScaleBias::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::ScaleBias::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double ScaleBias::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a3">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::ScaleBias::SetBias"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::ScaleBias::SetBias </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>bias</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the bias to apply to the scaled output value from the source module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>bias</em> </td><td>The bias to apply.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a4">GetValue()</a> method retrieves the output value from the source module, multiplies it with the scaling factor, adds the bias to it, then outputs the value. </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::ScaleBias::SetScale"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::ScaleBias::SetScale </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>scale</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the scaling factor to apply to the output value from the source module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>scale</em> </td><td>The scaling factor to apply.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a4">GetValue()</a> method retrieves the output value from the source module, multiplies it with the scaling factor, adds the bias to it, then outputs the value. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="scalebias_8h-source.html">scalebias.h</a><li>scalebias.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 472 bytes)
@@ -0,0 +1,140 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::ScalePoint Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a3">GetXScale</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a4">GetYScale</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a5">GetZScale</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p0">m_xScale</a></td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p1">m_yScale</a></td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p2">m_zScale</a></td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a0">ScalePoint</a>()</td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a6">SetScale</a>(double scale)</td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a7">SetScale</a>(double xScale, double yScale, double zScale)</td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a8">SetXScale</a>(double xScale)</td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a9">SetYScale</a>(double yScale)</td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a10">SetZScale</a>(double zScale)</td><td><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,596 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::ScalePoint Class Reference<br>+<small>+[<a class="el" href="group__transformermodules.html">Transformer Modules</a>]</small>+</h1><code>#include <<a class="el" href="scalepoint_8h-source.html">scalepoint.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::ScalePoint:+<p><center><img src="classnoise_1_1module_1_1ScalePoint.png" usemap="#noise::module::ScalePoint_map" border="0" alt=""></center>+<map name="noise::module::ScalePoint_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,154,24">+</map>+<a href="classnoise_1_1module_1_1ScalePoint-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that scales the coordinates of the input value before returning the output value from a source module. +<p>+<div align="center">+<img src="modulescalepoint.png" alt="modulescalepoint.png">+</div>+<p>+The <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a2">GetValue()</a> method multiplies the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value with a scaling factor before returning the output value from the source module. To set the scaling factor, call the <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a6">SetScale()</a> method. To set the scaling factor to apply to the individual <em>x</em>, <em>y</em>, or <em>z</em> coordinates, call the <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a8">SetXScale()</a>, <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a9">SetYScale()</a> or <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a10">SetZScale()</a> methods, respectively.<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a0">ScalePoint</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a3">GetXScale</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the scaling factor applied to the <em>x</em> coordinate of the input value. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a4">GetYScale</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the scaling factor applied to the <em>y</em> coordinate of the input value. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a5">GetZScale</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the scaling factor applied to the <em>z</em> coordinate of the input value. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a6">SetScale</a> (double scale)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the scaling factor to apply to the input value. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a7">SetScale</a> (double xScale, double yScale, double zScale)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the scaling factor to apply to the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a8">SetXScale</a> (double xScale)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the scaling factor to apply to the <em>x</em> coordinate of the input value. <a href="#a8"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a9">SetYScale</a> (double yScale)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the scaling factor to apply to the <em>y</em> coordinate of the input value. <a href="#a9"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a10">SetZScale</a> (double zScale)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the scaling factor to apply to the <em>z</em> coordinate of the input value. <a href="#a10"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::ScalePoint::m_xScale"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p0">m_xScale</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Scaling factor applied to the <em>x</em> coordinate of the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::ScalePoint::m_yScale"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p1">m_yScale</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Scaling factor applied to the <em>y</em> coordinate of the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::ScalePoint::m_zScale"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p2">m_zScale</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Scaling factor applied to the <em>z</em> coordinate of the input value. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::ScalePoint::ScalePoint"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">ScalePoint::ScalePoint </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default scaling factor applied to the <em>x</em> coordinate is set to <a class="el" href="group__transformermodules.html#ga3">noise::module::DEFAULT_SCALE_POINT_X</a>.<p>+The default scaling factor applied to the <em>y</em> coordinate is set to <a class="el" href="group__transformermodules.html#ga4">noise::module::DEFAULT_SCALE_POINT_Y</a>.<p>+The default scaling factor applied to the <em>z</em> coordinate is set to <a class="el" href="group__transformermodules.html#ga5">noise::module::DEFAULT_SCALE_POINT_Z</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::ScalePoint::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::ScalePoint::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::ScalePoint::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double ScalePoint::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::ScalePoint::GetXScale"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::ScalePoint::GetXScale </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the scaling factor applied to the <em>x</em> coordinate of the input value. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The scaling factor applied to the <em>x</em> coordinate. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::ScalePoint::GetYScale"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::ScalePoint::GetYScale </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the scaling factor applied to the <em>y</em> coordinate of the input value. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The scaling factor applied to the <em>y</em> coordinate. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::ScalePoint::GetZScale"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::ScalePoint::GetZScale </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the scaling factor applied to the <em>z</em> coordinate of the input value. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The scaling factor applied to the <em>z</em> coordinate. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::ScalePoint::SetScale"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::ScalePoint::SetScale </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>xScale</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>yScale</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>zScale</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the scaling factor to apply to the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>xScale</em> </td><td>The scaling factor to apply to the <em>x</em> coordinate. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>yScale</em> </td><td>The scaling factor to apply to the <em>y</em> coordinate. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>zScale</em> </td><td>The scaling factor to apply to the <em>z</em> coordinate.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a2">GetValue()</a> method multiplies the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value with a scaling factor before returning the output value from the source module. </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::ScalePoint::SetScale"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::ScalePoint::SetScale </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>scale</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the scaling factor to apply to the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>scale</em> </td><td>The scaling factor to apply.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a2">GetValue()</a> method multiplies the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value with a scaling factor before returning the output value from the source module. </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::module::ScalePoint::SetXScale"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::ScalePoint::SetXScale </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>xScale</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the scaling factor to apply to the <em>x</em> coordinate of the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>xScale</em> </td><td>The scaling factor to apply to the <em>x</em> coordinate.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a2">GetValue()</a> method multiplies the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value with a scaling factor before returning the output value from the source module. </td>+ </tr>+</table>+<a class="anchor" name="a9" doxytag="noise::module::ScalePoint::SetYScale"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::ScalePoint::SetYScale </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>yScale</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the scaling factor to apply to the <em>y</em> coordinate of the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>yScale</em> </td><td>The scaling factor to apply to the <em>y</em> coordinate.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a2">GetValue()</a> method multiplies the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value with a scaling factor before returning the output value from the source module. </td>+ </tr>+</table>+<a class="anchor" name="a10" doxytag="noise::module::ScalePoint::SetZScale"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::ScalePoint::SetZScale </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>zScale</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the scaling factor to apply to the <em>z</em> coordinate of the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>zScale</em> </td><td>The scaling factor to apply to the <em>z</em> coordinate.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a2">GetValue()</a> method multiplies the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value with a scaling factor before returning the output value from the source module. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="scalepoint_8h-source.html">scalepoint.h</a><li>scalepoint.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 476 bytes)
@@ -0,0 +1,139 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Select Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#a1">GetControlModule</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#a2">GetEdgeFalloff</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#a3">GetLowerBound</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#a4">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#a5">GetUpperBound</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#a6">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#p0">m_edgeFalloff</a></td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#p1">m_lowerBound</a></td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#p2">m_upperBound</a></td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#a0">Select</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#a7">SetBounds</a>(double lowerBound, double upperBound)</td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#a8">SetControlModule</a>(const Module &controlModule)</td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Select.html#a9">SetEdgeFalloff</a>(double edgeFalloff)</td><td><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,570 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Select Class Reference<br>+<small>+[<a class="el" href="group__selectormodules.html">Selector Modules</a>]</small>+</h1><code>#include <<a class="el" href="select_8h-source.html">select.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Select:+<p><center><img src="classnoise_1_1module_1_1Select.png" usemap="#noise::module::Select_map" border="0" alt=""></center>+<map name="noise::module::Select_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,136,24">+</map>+<a href="classnoise_1_1module_1_1Select-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs the value selected from one of two source modules chosen by the output value from a control module. +<p>+<div align="center">+<img src="moduleselect.png" alt="moduleselect.png">+</div>+<p>+Unlike most other noise modules, the index value assigned to a source module determines its role in the selection operation:<ul>+<li>Source module 0 (upper left in the diagram) outputs a value.</li><li>Source module 1 (lower left in the diagram) outputs a value.</li><li>Source module 2 (bottom of the diagram) is known as the <em>control module</em>. The control module determines the value to select. If the output value from the control module is within a range of values known as the <em>selection range</em>, this noise module outputs the value from the source module with an index value of 1. Otherwise, this noise module outputs the value from the source module with an index value of 0.</li></ul>+<p>+To specify the bounds of the selection range, call the <a class="el" href="classnoise_1_1module_1_1Select.html#a7">SetBounds()</a> method.<p>+An application can pass the control module to the <a class="el" href="classnoise_1_1module_1_1Select.html#a8">SetControlModule()</a> method instead of the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. This may make the application code easier to read.<p>+By default, there is an abrupt transition between the output values from the two source modules at the selection-range boundary. To smooth the transition, pass a non-zero value to the <a class="el" href="classnoise_1_1module_1_1Select.html#a9">SetEdgeFalloff()</a> method. Higher values result in a smoother transition.<p>+This noise module requires three source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#a0">Select</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#a1">GetControlModule</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the control module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#a2">GetEdgeFalloff</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the falloff value at the edge transition. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#a3">GetLowerBound</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the lower bound of the selection range. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#a4">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#a5">GetUpperBound</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the upper bound of the selection range. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#a6">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#a7">SetBounds</a> (double lowerBound, double upperBound)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the lower and upper bounds of the selection range. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#a8">SetControlModule</a> (const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> &controlModule)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the control module. <a href="#a8"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#a9">SetEdgeFalloff</a> (double edgeFalloff)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the falloff value at the edge transition. <a href="#a9"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Select::m_edgeFalloff"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#p0">m_edgeFalloff</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Edge-falloff value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::Select::m_lowerBound"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#p1">m_lowerBound</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Lower bound of the selection range. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::Select::m_upperBound"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html#p2">m_upperBound</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Upper bound of the selection range. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::Select::Select"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Select::Select </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default falloff value at the edge transition is set to <a class="el" href="group__selectormodules.html#ga0">noise::module::DEFAULT_SELECT_EDGE_FALLOFF</a>.<p>+The default lower bound of the selection range is set to <a class="el" href="group__selectormodules.html#ga1">noise::module::DEFAULT_SELECT_LOWER_BOUND</a>.<p>+The default upper bound of the selection range is set to <a class="el" href="group__selectormodules.html#ga2">noise::module::DEFAULT_SELECT_UPPER_BOUND</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Select::GetControlModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a>& noise::module::Select::GetControlModule </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the control module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>A reference to the control module.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>A control module has been added to this noise module via a call to <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> or <a class="el" href="classnoise_1_1module_1_1Select.html#a8">SetControlModule()</a>.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionNoModule</em> </td><td>See the preconditions for more information.</td></tr>+ </table>+</dl>+The control module determines the output value to select. If the output value from the control module is within a range of values known as the <em>selection range</em>, the <a class="el" href="classnoise_1_1module_1_1Select.html#a6">GetValue()</a> method outputs the value from the source module with an index value of 1. Otherwise, this method outputs the value from the source module with an index value of 0. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Select::GetEdgeFalloff"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Select::GetEdgeFalloff </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the falloff value at the edge transition. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The falloff value at the edge transition.</dd></dl>+The falloff value is the width of the edge transition at either edge of the selection range.<p>+By default, there is an abrupt transition between the output values from the two source modules at the selection-range boundary. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Select::GetLowerBound"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Select::GetLowerBound </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the lower bound of the selection range. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The lower bound of the selection range.</dd></dl>+If the output value from the control module is within the selection range, the <a class="el" href="classnoise_1_1module_1_1Select.html#a6">GetValue()</a> method outputs the value from the source module with an index value of 1. Otherwise, this method outputs the value from the source module with an index value of 0. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Select::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Select::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::Select::GetUpperBound"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Select::GetUpperBound </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the upper bound of the selection range. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The upper bound of the selection range.</dd></dl>+If the output value from the control module is within the selection range, the <a class="el" href="classnoise_1_1module_1_1Select.html#a6">GetValue()</a> method outputs the value from the source module with an index value of 1. Otherwise, this method outputs the value from the source module with an index value of 0. </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::Select::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Select::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Select.html#a4">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::Select::SetBounds"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void Select::SetBounds </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>lowerBound</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>upperBound</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the lower and upper bounds of the selection range. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>lowerBound</em> </td><td>The lower bound. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>upperBound</em> </td><td>The upper bound.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Precondition:</b></dt><dd>The lower bound must be less than or equal to the upper bound.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+If the output value from the control module is within the selection range, the <a class="el" href="classnoise_1_1module_1_1Select.html#a6">GetValue()</a> method outputs the value from the source module with an index value of 1. Otherwise, this method outputs the value from the source module with an index value of 0. </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::module::Select::SetControlModule"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Select::SetControlModule </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const <a class="el" href="classnoise_1_1module_1_1Module.html">Module</a> & </td>+ <td class="mdname1" valign="top" nowrap> <em>controlModule</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the control module. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>controlModule</em> </td><td>The control module.</td></tr>+ </table>+</dl>+The control module determines the output value to select. If the output value from the control module is within a range of values known as the <em>selection range</em>, the <a class="el" href="classnoise_1_1module_1_1Select.html#a6">GetValue()</a> method outputs the value from the source module with an index value of 1. Otherwise, this method outputs the value from the source module with an index value of 0.<p>+This method assigns the control module an index value of 2. Passing the control module to this method produces the same results as passing the control module to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method while assigning that noise module an index value of 2.<p>+This control module must exist throughout the lifetime of this noise module unless another control module replaces that control module. </td>+ </tr>+</table>+<a class="anchor" name="a9" doxytag="noise::module::Select::SetEdgeFalloff"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void Select::SetEdgeFalloff </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>edgeFalloff</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the falloff value at the edge transition. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>edgeFalloff</em> </td><td>The falloff value at the edge transition.</td></tr>+ </table>+</dl>+The falloff value is the width of the edge transition at either edge of the selection range.<p>+By default, there is an abrupt transition between the values from the two source modules at the boundaries of the selection range.<p>+For example, if the selection range is 0.5 to 0.8, and the edge falloff value is 0.1, then the <a class="el" href="classnoise_1_1module_1_1Select.html#a6">GetValue()</a> method outputs:<ul>+<li>the output value from the source module with an index value of 0 if the output value from the control module is less than 0.4 ( = 0.5 - 0.1).</li><li>a linear blend between the two output values from the two source modules if the output value from the control module is between 0.4 ( = 0.5 - 0.1) and 0.6 ( = 0.5 + 0.1).</li><li>the output value from the source module with an index value of 1 if the output value from the control module is between 0.6 ( = 0.5 + 0.1) and 0.7 ( = 0.8 - 0.1).</li><li>a linear blend between the output values from the two source modules if the output value from the control module is between 0.7 ( = 0.8 - 0.1 ) and 0.9 ( = 0.8 + 0.1).</li><li>the output value from the source module with an index value of 0 if the output value from the control module is greater than 0.9 ( = 0.8 + 0.1). </li></ul>+ </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="select_8h-source.html">select.h</a><li>select.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 448 bytes)
@@ -0,0 +1,132 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Spheres Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Spheres.html">noise::module::Spheres</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Spheres.html#a1">GetFrequency</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Spheres.html">noise::module::Spheres</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Spheres.html#a2">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Spheres.html">noise::module::Spheres</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Spheres.html#a3">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Spheres.html">noise::module::Spheres</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Spheres.html#p0">m_frequency</a></td><td><a class="el" href="classnoise_1_1module_1_1Spheres.html">noise::module::Spheres</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Spheres.html#a4">SetFrequency</a>(double frequency)</td><td><a class="el" href="classnoise_1_1module_1_1Spheres.html">noise::module::Spheres</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Spheres.html#a0">Spheres</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Spheres.html">noise::module::Spheres</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,355 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Spheres Class Reference<br>+<small>+[<a class="el" href="group__generatormodules.html">Generator Modules</a>]</small>+</h1><code>#include <<a class="el" href="spheres_8h-source.html">spheres.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Spheres:+<p><center><img src="classnoise_1_1module_1_1Spheres.png" usemap="#noise::module::Spheres_map" border="0" alt=""></center>+<map name="noise::module::Spheres_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,141,24">+</map>+<a href="classnoise_1_1module_1_1Spheres-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs concentric spheres. +<p>+<div align="center">+<img src="modulespheres.png" alt="modulespheres.png">+</div>+<p>+This noise module outputs concentric spheres centered on the origin like the concentric rings of an onion.<p>+The first sphere has a radius of 1.0. Each subsequent sphere has a radius that is 1.0 unit larger than the previous sphere.<p>+The output value from this noise module is determined by the distance between the input value and the the nearest spherical surface. The input values that are located on a spherical surface are given the output value 1.0 and the input values that are equidistant from two spherical surfaces are given the output value -1.0.<p>+An application can change the frequency of the concentric spheres. Increasing the frequency reduces the distances between spheres. To specify the frequency, call the <a class="el" href="classnoise_1_1module_1_1Spheres.html#a4">SetFrequency()</a> method.<p>+This noise module, modified with some low-frequency, low-power turbulence, is useful for generating agate-like textures.<p>+This noise module does not require any source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Spheres.html#a0">Spheres</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Spheres.html#a1">GetFrequency</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the frequency of the concentric spheres. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Spheres.html#a2">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Spheres.html#a3">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Spheres.html#a4">SetFrequency</a> (double frequency)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the frequenct of the concentric spheres. <a href="#a4"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Spheres::m_frequency"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Spheres.html#p0">m_frequency</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Frequency of the concentric spheres. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::Spheres::Spheres"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Spheres::Spheres </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default frequency is set to <a class="el" href="group__generatormodules.html#ga22">noise::module::DEFAULT_SPHERES_FREQUENCY</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Spheres::GetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Spheres::GetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the frequency of the concentric spheres. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The frequency of the concentric spheres.</dd></dl>+Increasing the frequency increases the density of the concentric spheres, reducing the distances between them. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Spheres::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Spheres::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Spheres::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Spheres::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Spheres.html#a2">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Spheres::SetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Spheres::SetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>frequency</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the frequenct of the concentric spheres. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>frequency</em> </td><td>The frequency of the concentric spheres.</td></tr>+ </table>+</dl>+Increasing the frequency increases the density of the concentric spheres, reducing the distances between them. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="spheres_8h-source.html">spheres.h</a><li>spheres.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 465 bytes)
@@ -0,0 +1,142 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Terrace Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#a2">AddControlPoint</a>(double value)</td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#a3">ClearAllControlPoints</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#b0">FindInsertionPos</a>(double value)</td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#a4">GetControlPointArray</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#a5">GetControlPointCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#a6">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#a9">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#b1">InsertAtPos</a>(int insertionPos, double value)</td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#a7">InvertTerraces</a>(bool invert=true)</td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#a8">IsTerracesInverted</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#p0">m_controlPointCount</a></td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#p1">m_invertTerraces</a></td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#p2">m_pControlPoints</a></td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#a10">MakeControlPoints</a>(int controlPointCount)</td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#a0">Terrace</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Terrace.html#a1">~Terrace</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,630 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Terrace Class Reference<br>+<small>+[<a class="el" href="group__modifiermodules.html">Modifier Modules</a>]</small>+</h1><code>#include <<a class="el" href="terrace_8h-source.html">terrace.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Terrace:+<p><center><img src="classnoise_1_1module_1_1Terrace.png" usemap="#noise::module::Terrace_map" border="0" alt=""></center>+<map name="noise::module::Terrace_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,139,24">+</map>+<a href="classnoise_1_1module_1_1Terrace-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that maps the output value from a source module onto a terrace-forming curve. +<p>+<div align="center">+<img src="moduleterrace.png" alt="moduleterrace.png">+</div>+<p>+This noise module maps the output value from the source module onto a terrace-forming curve. The start of this curve has a slope of zero; its slope then smoothly increases. This curve also contains <em>control points</em> which resets the slope to zero at that point, producing a "terracing" effect. Refer to the following illustration:<p>+<div align="center">+<img src="terrace.png" alt="terrace.png">+</div>+<p>+To add a control point to this noise module, call the <a class="el" href="classnoise_1_1module_1_1Terrace.html#a2">AddControlPoint()</a> method.<p>+An application must add a minimum of two control points to the curve. If this is not done, the <a class="el" href="classnoise_1_1module_1_1Terrace.html#a9">GetValue()</a> method fails. The control points can have any value, although no two control points can have the same value. There is no limit to the number of control points that can be added to the curve.<p>+This noise module clamps the output value from the source module if that value is less than the value of the lowest control point or greater than the value of the highest control point.<p>+This noise module is often used to generate terrain features such as your stereotypical desert canyon.<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0" doxytag="noise::module::Terrace::Terrace"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#a0">Terrace</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1" doxytag="noise::module::Terrace::~Terrace"></a>+ </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#a1">~Terrace</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#a2">AddControlPoint</a> (double value)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds a control point to the terrace-forming curve. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#a3">ClearAllControlPoints</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Deletes all the control points on the terrace-forming curve. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">const double * </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#a4">GetControlPointArray</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a pointer to the array of control points on the terrace-forming curve. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#a5">GetControlPointCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of control points on the terrace-forming curve. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#a6">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#a7">InvertTerraces</a> (bool invert=true)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Enables or disables the inversion of the terrace-forming curve between the control points. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#a8">IsTerracesInverted</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Determines if the terrace-forming curve between the control points is inverted. <a href="#a8"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#a9">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a9"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#a10">MakeControlPoints</a> (int controlPointCount)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a number of equally-spaced control points that range from -1 to +1. <a href="#a10"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#b0">FindInsertionPos</a> (double value)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Determines the array index in which to insert the control point into the internal control point array. <a href="#b0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#b1">InsertAtPos</a> (int insertionPos, double value)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Inserts the control point at the specified position in the internal control point array. <a href="#b1"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Terrace::m_controlPointCount"></a>+int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#p0">m_controlPointCount</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Number of control points stored in this noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::Terrace::m_invertTerraces"></a>+bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#p1">m_invertTerraces</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Determines if the terrace-forming curve between all control points is inverted. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::Terrace::m_pControlPoints"></a>+double * </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html#p2">m_pControlPoints</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Array that stores the control points. <br></td></tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a2" doxytag="noise::module::Terrace::AddControlPoint"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void Terrace::AddControlPoint </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>value</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Adds a control point to the terrace-forming curve. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>The value of the control point to add.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Precondition:</b></dt><dd>No two control points have the same value.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+Two or more control points define the terrace-forming curve. The start of this curve has a slope of zero; its slope then smoothly increases. At the control points, its slope resets to zero.<p>+It does not matter which order these points are added. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Terrace::ClearAllControlPoints"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void Terrace::ClearAllControlPoints </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Deletes all the control points on the terrace-forming curve. +<p>+<dl compact><dt><b>Postcondition:</b></dt><dd>All control points on the terrace-forming curve are deleted. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="b0" doxytag="noise::module::Terrace::FindInsertionPos"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int Terrace::FindInsertionPos </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>value</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [protected]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Determines the array index in which to insert the control point into the internal control point array. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>The value of the control point.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The array index in which to insert the control point.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>No two control points have the same value.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+By inserting the control point at the returned array index, this class ensures that the control point array is sorted by value. The code that maps a value onto the curve requires a sorted control point array. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Terrace::GetControlPointArray"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">const double* noise::module::Terrace::GetControlPointArray </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns a pointer to the array of control points on the terrace-forming curve. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>A pointer to the array of control points in this noise module.</dd></dl>+Two or more control points define the terrace-forming curve. The start of this curve has a slope of zero; its slope then smoothly increases. At the control points, its slope resets to zero.<p>+Before calling this method, call <a class="el" href="classnoise_1_1module_1_1Terrace.html#a5">GetControlPointCount()</a> to determine the number of control points in this array.<p>+It is recommended that an application does not store this pointer for later use since the pointer to the array may change if the application calls another method of this object. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::Terrace::GetControlPointCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int noise::module::Terrace::GetControlPointCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of control points on the terrace-forming curve. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of control points on the terrace-forming curve. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::Terrace::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Terrace::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a9" doxytag="noise::module::Terrace::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Terrace::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Terrace.html#a6">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="b1" doxytag="noise::module::Terrace::InsertAtPos"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void Terrace::InsertAtPos </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname" nowrap> <em>insertionPos</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>value</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"><code> [protected]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Inserts the control point at the specified position in the internal control point array. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>insertionPos</em> </td><td>The zero-based array position in which to insert the control point. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>The value of the control point.</td></tr>+ </table>+</dl>+To make room for this new control point, this method reallocates the control point array and shifts all control points occurring after the insertion position up by one.<p>+Because the curve mapping algorithm in this noise module requires that all control points in the array be sorted by value, the new control point should be inserted at the position in which the order is still preserved. </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::Terrace::InvertTerraces"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Terrace::InvertTerraces </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">bool </td>+ <td class="mdname1" valign="top" nowrap> <em>invert</em> = <code>true</code> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Enables or disables the inversion of the terrace-forming curve between the control points. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>invert</em> </td><td>Specifies whether to invert the curve between the control points. </td></tr>+ </table>+</dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::module::Terrace::IsTerracesInverted"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">bool noise::module::Terrace::IsTerracesInverted </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Determines if the terrace-forming curve between the control points is inverted. +<p>+<dl compact><dt><b>Returns:</b></dt><dd><ul>+<li><em>true</em> if the curve between the control points is inverted.</li><li><em>false</em> if the curve between the control points is not inverted. </li></ul>+</dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a10" doxytag="noise::module::Terrace::MakeControlPoints"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void Terrace::MakeControlPoints </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname1" valign="top" nowrap> <em>controlPointCount</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Creates a number of equally-spaced control points that range from -1 to +1. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>controlPointCount</em> </td><td>The number of control points to generate.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Precondition:</b></dt><dd>The number of control points must be greater than or equal to 2.</dd></dl>+<dl compact><dt><b>Postcondition:</b></dt><dd>The previous control points on the terrace-forming curve are deleted.</dd></dl>+<dl compact><dt><b>Exceptions:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>noise::ExceptionInvalidParam</em> </td><td>An invalid parameter was specified; see the preconditions for more information.</td></tr>+ </table>+</dl>+Two or more control points define the terrace-forming curve. The start of this curve has a slope of zero; its slope then smoothly increases. At the control points, its slope resets to zero. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="terrace_8h-source.html">terrace.h</a><li>terrace.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 457 bytes)
@@ -0,0 +1,140 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::TranslatePoint Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a1">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a2">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a3">GetXTranslation</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a4">GetYTranslation</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a5">GetZTranslation</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p0">m_xTranslation</a></td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p1">m_yTranslation</a></td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p2">m_zTranslation</a></td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a6">SetTranslation</a>(double translation)</td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a7">SetTranslation</a>(double xTranslation, double yTranslation, double zTranslation)</td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a8">SetXTranslation</a>(double xTranslation)</td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a9">SetYTranslation</a>(double yTranslation)</td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a10">SetZTranslation</a>(double zTranslation)</td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a0">TranslatePoint</a>()</td><td><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,596 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::TranslatePoint Class Reference<br>+<small>+[<a class="el" href="group__transformermodules.html">Transformer Modules</a>]</small>+</h1><code>#include <<a class="el" href="translatepoint_8h-source.html">translatepoint.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::TranslatePoint:+<p><center><img src="classnoise_1_1module_1_1TranslatePoint.png" usemap="#noise::module::TranslatePoint_map" border="0" alt=""></center>+<map name="noise::module::TranslatePoint_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,174,24">+</map>+<a href="classnoise_1_1module_1_1TranslatePoint-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that moves the coordinates of the input value before returning the output value from a source module. +<p>+<div align="center">+<img src="moduletranslatepoint.png" alt="moduletranslatepoint.png">+</div>+<p>+The <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a2">GetValue()</a> method moves the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value by a translation amount before returning the output value from the source module. To set the translation amount, call the <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a6">SetTranslation()</a> method. To set the translation amount to apply to the individual <em>x</em>, <em>y</em>, or <em>z</em> coordinates, call the <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a8">SetXTranslation()</a>, <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a9">SetYTranslation()</a> or <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a10">SetZTranslation()</a> methods, respectively.<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a0">TranslatePoint</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a1">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a2">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a3">GetXTranslation</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the translation amount to apply to the <em>x</em> coordinate of the input value. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a4">GetYTranslation</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the translation amount to apply to the <em>y</em> coordinate of the input value. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a5">GetZTranslation</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the translation amount to apply to the <em>z</em> coordinate of the input value. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a6">SetTranslation</a> (double translation)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the translation amount to apply to the input value. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a7">SetTranslation</a> (double xTranslation, double yTranslation, double zTranslation)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the translation amounts to apply to the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a8">SetXTranslation</a> (double xTranslation)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the translation amount to apply to the <em>x</em> coordinate of the input value. <a href="#a8"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a9">SetYTranslation</a> (double yTranslation)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the translation amount to apply to the <em>y</em> coordinate of the input value. <a href="#a9"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a10">SetZTranslation</a> (double zTranslation)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the translation amount to apply to the <em>z</em> coordinate of the input value. <a href="#a10"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::TranslatePoint::m_xTranslation"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p0">m_xTranslation</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Translation amount applied to the <em>x</em> coordinate of the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::TranslatePoint::m_yTranslation"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p1">m_yTranslation</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Translation amount applied to the <em>y</em> coordinate of the input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::TranslatePoint::m_zTranslation"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p2">m_zTranslation</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Translation amount applied to the <em>z</em> coordinate of the input value. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::TranslatePoint::TranslatePoint"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">TranslatePoint::TranslatePoint </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default translation amount to apply to the <em>x</em> coordinate is set to <a class="el" href="group__transformermodules.html#ga6">noise::module::DEFAULT_TRANSLATE_POINT_X</a>.<p>+The default translation amount to apply to the <em>y</em> coordinate is set to <a class="el" href="group__transformermodules.html#ga7">noise::module::DEFAULT_TRANSLATE_POINT_Y</a>.<p>+The default translation amount to apply to the <em>z</em> coordinate is set to <a class="el" href="group__transformermodules.html#ga8">noise::module::DEFAULT_TRANSLATE_POINT_Z</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::TranslatePoint::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::TranslatePoint::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::TranslatePoint::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double TranslatePoint::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a1">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::TranslatePoint::GetXTranslation"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::TranslatePoint::GetXTranslation </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the translation amount to apply to the <em>x</em> coordinate of the input value. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The translation amount to apply to the <em>x</em> coordinate. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::TranslatePoint::GetYTranslation"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::TranslatePoint::GetYTranslation </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the translation amount to apply to the <em>y</em> coordinate of the input value. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The translation amount to apply to the <em>y</em> coordinate. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::TranslatePoint::GetZTranslation"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::TranslatePoint::GetZTranslation </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the translation amount to apply to the <em>z</em> coordinate of the input value. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The translation amount to apply to the <em>z</em> coordinate. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::TranslatePoint::SetTranslation"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::TranslatePoint::SetTranslation </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>xTranslation</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>yTranslation</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>zTranslation</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the translation amounts to apply to the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>xTranslation</em> </td><td>The translation amount to apply to the <em>x</em> coordinate. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>yTranslation</em> </td><td>The translation amount to apply to the <em>y</em> coordinate. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>zTranslation</em> </td><td>The translation amount to apply to the <em>z</em> coordinate.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a2">GetValue()</a> method moves the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value by a translation amount before returning the output value from the source module </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::TranslatePoint::SetTranslation"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::TranslatePoint::SetTranslation </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>translation</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the translation amount to apply to the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>translation</em> </td><td>The translation amount to apply.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a2">GetValue()</a> method moves the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value by a translation amount before returning the output value from the source module </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::module::TranslatePoint::SetXTranslation"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::TranslatePoint::SetXTranslation </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>xTranslation</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the translation amount to apply to the <em>x</em> coordinate of the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>xTranslation</em> </td><td>The translation amount to apply to the <em>x</em> coordinate.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a2">GetValue()</a> method moves the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value by a translation amount before returning the output value from the source module </td>+ </tr>+</table>+<a class="anchor" name="a9" doxytag="noise::module::TranslatePoint::SetYTranslation"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::TranslatePoint::SetYTranslation </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>yTranslation</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the translation amount to apply to the <em>y</em> coordinate of the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>yTranslation</em> </td><td>The translation amount to apply to the <em>y</em> coordinate.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a2">GetValue()</a> method moves the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value by a translation amount before returning the output value from the source module </td>+ </tr>+</table>+<a class="anchor" name="a10" doxytag="noise::module::TranslatePoint::SetZTranslation"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::TranslatePoint::SetZTranslation </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>zTranslation</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the translation amount to apply to the <em>z</em> coordinate of the input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>zTranslation</em> </td><td>The translation amount to apply to the <em>z</em> coordinate.</td></tr>+ </table>+</dl>+The <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a2">GetValue()</a> method moves the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value by a translation amount before returning the output value from the source module </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="translatepoint_8h-source.html">translatepoint.h</a><li>translatepoint.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 507 bytes)
@@ -0,0 +1,141 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Turbulence Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a1">GetFrequency</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a2">GetPower</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a3">GetRoughnessCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a4">GetSeed</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a5">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a6">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#p0">m_power</a></td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#p1">m_xDistortModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#p2">m_yDistortModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#p3">m_zDistortModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a7">SetFrequency</a>(double frequency)</td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a8">SetPower</a>(double power)</td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a9">SetRoughness</a>(int roughness)</td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a10">SetSeed</a>(int seed)</td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a0">Turbulence</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,593 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Turbulence Class Reference<br>+<small>+[<a class="el" href="group__transformermodules.html">Transformer Modules</a>]</small>+</h1><code>#include <<a class="el" href="turbulence_8h-source.html">turbulence.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Turbulence:+<p><center><img src="classnoise_1_1module_1_1Turbulence.png" usemap="#noise::module::Turbulence_map" border="0" alt=""></center>+<map name="noise::module::Turbulence_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,158,24">+</map>+<a href="classnoise_1_1module_1_1Turbulence-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that randomly displaces the input value before returning the output value from a source module. +<p>+<div align="center">+<img src="moduleturbulence.png" alt="moduleturbulence.png">+</div>+<p>+<em><a class="el" href="classnoise_1_1module_1_1Turbulence.html">Turbulence</a></em> is the pseudo-random displacement of the input value. The <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a6">GetValue()</a> method randomly displaces the ( <em>x</em>, <em>y</em>, <em>z</em> ) coordinates of the input value before retrieving the output value from the source module. To control the turbulence, an application can modify its frequency, its power, and its roughness.<p>+The frequency of the turbulence determines how rapidly the displacement amount changes. To specify the frequency, call the <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a7">SetFrequency()</a> method.<p>+The power of the turbulence determines the scaling factor that is applied to the displacement amount. To specify the power, call the <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a8">SetPower()</a> method.<p>+The roughness of the turbulence determines the roughness of the changes to the displacement amount. Low values smoothly change the displacement amount. High values roughly change the displacement amount, which produces more "kinky" changes. To specify the roughness, call the <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a9">SetRoughness()</a> method.<p>+Use of this noise module may require some trial and error. Assuming that you are using a generator module as the source module, you should first:<ul>+<li>Set the frequency to the same frequency as the source module.</li><li>Set the power to the reciprocal of the frequency.</li></ul>+<p>+From these initial frequency and power values, modify these values until this noise module produce the desired changes in your terrain or texture. For example:<ul>+<li>Low frequency (1/8 initial frequency) and low power (1/8 initial power) produces very minor, almost unnoticeable changes.</li><li>Low frequency (1/8 initial frequency) and high power (8 times initial power) produces "ropey" lava-like terrain or marble-like textures.</li><li>High frequency (8 times initial frequency) and low power (1/8 initial power) produces a noisy version of the initial terrain or texture.</li><li>High frequency (8 times initial frequency) and high power (8 times initial power) produces nearly pure noise, which isn't entirely useful.</li></ul>+<p>+Displacing the input values result in more realistic terrain and textures. If you are generating elevations for terrain height maps, you can use this noise module to produce more realistic mountain ranges or terrain features that look like flowing lava rock. If you are generating values for textures, you can use this noise module to produce realistic marble-like or "oily" textures.<p>+Internally, there are three <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise modules that displace the input value; one for the <em>x</em>, one for the <em>y</em>, and one for the <em>z</em> coordinate.<p>+This noise module requires one source module. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a0">Turbulence</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a1">GetFrequency</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the frequency of the turbulence. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a2">GetPower</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the power of the turbulence. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a3">GetRoughnessCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the roughness of the turbulence. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a4">GetSeed</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the seed value of the internal Perlin-noise modules that are used to displace the input values. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a5">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a6">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a7">SetFrequency</a> (double frequency)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the frequency of the turbulence. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a8">SetPower</a> (double power)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the power of the turbulence. <a href="#a8"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a9">SetRoughness</a> (int roughness)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the roughness of the turbulence. <a href="#a9"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#a10">SetSeed</a> (int seed)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the seed value of the internal noise modules that are used to displace the input values. <a href="#a10"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Turbulence::m_power"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#p0">m_power</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">The power (scale) of the displacement. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::Turbulence::m_xDistortModule"></a>+<a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#p1">m_xDistortModule</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that displaces the <em>x</em> coordinate. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::Turbulence::m_yDistortModule"></a>+<a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#p2">m_yDistortModule</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that displaces the <em>y</em> coordinate. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p3" doxytag="noise::module::Turbulence::m_zDistortModule"></a>+<a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html#p3">m_zDistortModule</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that displaces the <em>z</em> coordinate. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::Turbulence::Turbulence"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Turbulence::Turbulence </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default frequency is set to <a class="el" href="group__transformermodules.html#ga9">noise::module::DEFAULT_TURBULENCE_FREQUENCY</a>.<p>+The default power is set to <a class="el" href="group__transformermodules.html#ga10">noise::module::DEFAULT_TURBULENCE_POWER</a>.<p>+The default roughness is set to <a class="el" href="group__transformermodules.html#ga11">noise::module::DEFAULT_TURBULENCE_ROUGHNESS</a>.<p>+The default seed value is set to <a class="el" href="group__transformermodules.html#ga12">noise::module::DEFAULT_TURBULENCE_SEED</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Turbulence::GetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Turbulence::GetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const</td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the frequency of the turbulence. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The frequency of the turbulence.</dd></dl>+The frequency of the turbulence determines how rapidly the displacement amount changes. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Turbulence::GetPower"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Turbulence::GetPower </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the power of the turbulence. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The power of the turbulence.</dd></dl>+The power of the turbulence determines the scaling factor that is applied to the displacement amount. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Turbulence::GetRoughnessCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int noise::module::Turbulence::GetRoughnessCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the roughness of the turbulence. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The roughness of the turbulence.</dd></dl>+The roughness of the turbulence determines the roughness of the changes to the displacement amount. Low values smoothly change the displacement amount. High values roughly change the displacement amount, which produces more "kinky" changes. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Turbulence::GetSeed"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int Turbulence::GetSeed </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const</td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the seed value of the internal Perlin-noise modules that are used to displace the input values. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The seed value.</dd></dl>+Internally, there are three <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise modules that displace the input value; one for the <em>x</em>, one for the <em>y</em>, and one for the <em>z</em> coordinate. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::Turbulence::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Turbulence::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::Turbulence::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Turbulence::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a5">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::Turbulence::SetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Turbulence::SetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>frequency</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the frequency of the turbulence. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>frequency</em> </td><td>The frequency of the turbulence.</td></tr>+ </table>+</dl>+The frequency of the turbulence determines how rapidly the displacement amount changes. </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::module::Turbulence::SetPower"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Turbulence::SetPower </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>power</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the power of the turbulence. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>power</em> </td><td>The power of the turbulence.</td></tr>+ </table>+</dl>+The power of the turbulence determines the scaling factor that is applied to the displacement amount. </td>+ </tr>+</table>+<a class="anchor" name="a9" doxytag="noise::module::Turbulence::SetRoughness"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Turbulence::SetRoughness </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname1" valign="top" nowrap> <em>roughness</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the roughness of the turbulence. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>roughness</em> </td><td>The roughness of the turbulence.</td></tr>+ </table>+</dl>+The roughness of the turbulence determines the roughness of the changes to the displacement amount. Low values smoothly change the displacement amount. High values roughly change the displacement amount, which produces more "kinky" changes.<p>+Internally, there are three <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise modules that displace the input value; one for the <em>x</em>, one for the <em>y</em>, and one for the <em>z</em> coordinate. The roughness value is equal to the number of octaves used by the <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise modules. </td>+ </tr>+</table>+<a class="anchor" name="a10" doxytag="noise::module::Turbulence::SetSeed"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void Turbulence::SetSeed </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname1" valign="top" nowrap> <em>seed</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the seed value of the internal noise modules that are used to displace the input values. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>The seed value.</td></tr>+ </table>+</dl>+Internally, there are three <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise modules that displace the input value; one for the <em>x</em>, one for the <em>y</em>, and one for the <em>z</em> coordinate. This noise module assigns the following seed values to the <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise modules:<ul>+<li>It assigns the seed value (<em>seed</em> + 0) to the <em>x</em> noise module.</li><li>It assigns the seed value (<em>seed</em> + 1) to the <em>y</em> noise module.</li><li>It assigns the seed value (<em>seed</em> + 2) to the <em>z</em> noise module. </li></ul>+ </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="turbulence_8h-source.html">turbulence.h</a><li>turbulence.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 474 bytes)
@@ -0,0 +1,141 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Voronoi Member List</h1>This is the complete list of members for <a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a1">EnableDistance</a>(bool enable=true)</td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a2">GetDisplacement</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a3">GetFrequency</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a5">GetSeed</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a2">GetSourceModule</a>(int index) const </td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a4">GetSourceModuleCount</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a7">GetValue</a>(double x, double y, double z) const </td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a6">IsDistanceEnabled</a>() const </td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#p0">m_displacement</a></td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#p1">m_enableDistance</a></td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#p2">m_frequency</a></td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#p0">m_pSourceModule</a></td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#p3">m_seed</a></td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [protected]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a0">Module</a>(int sourceModuleCount)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a8">SetDisplacement</a>(double displacement)</td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a9">SetFrequency</a>(double frequency)</td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a10">SetSeed</a>(int seed)</td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td><code> [inline]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule</a>(int index, const Module &sourceModule)</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td><code> [inline, virtual]</code></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a0">Voronoi</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="classnoise_1_1module_1_1Module.html#a1">~Module</a>()</td><td><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,585 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::Voronoi Class Reference<br>+<small>+[<a class="el" href="group__generatormodules.html">Generator Modules</a>]</small>+</h1><code>#include <<a class="el" href="voronoi_8h-source.html">voronoi.h</a>></code>+<p>+<p>Inheritance diagram for noise::module::Voronoi:+<p><center><img src="classnoise_1_1module_1_1Voronoi.png" usemap="#noise::module::Voronoi_map" border="0" alt=""></center>+<map name="noise::module::Voronoi_map">+<area href="classnoise_1_1module_1_1Module.html" alt="noise::module::Module" shape="rect" coords="0,0,139,24">+</map>+<a href="classnoise_1_1module_1_1Voronoi-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+Noise module that outputs <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells. +<p>+<div align="center">+<img src="modulevoronoi.png" alt="modulevoronoi.png">+</div>+<p>+In mathematics, a <em><a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cell</em> is a region containing all the points that are closer to a specific <em>seed point</em> than to any other seed point. These cells mesh with one another, producing polygon-like formations.<p>+By default, this noise module randomly places a seed point within each unit cube. By modifying the <em>frequency</em> of the seed points, an application can change the distance between seed points. The higher the frequency, the closer together this noise module places the seed points, which reduces the size of the cells. To specify the frequency of the cells, call the <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a9">SetFrequency()</a> method.<p>+This noise module assigns each <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cell with a random constant value from a coherent-noise function. The <em>displacement value</em> controls the range of random values to assign to each cell. The range of random values is +/- the displacement value. Call the <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a8">SetDisplacement()</a> method to specify the displacement value.<p>+To modify the random positions of the seed points, call the <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a10">SetSeed()</a> method.<p>+This noise module can optionally add the distance from the nearest seed to the output value. To enable this feature, call the <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a1">EnableDistance()</a> method. This causes the points in the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells to increase in value the further away that point is from the nearest seed point.<p>+<a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells are often used to generate cracked-mud terrain formations or crystal-like textures<p>+This noise module requires no source modules. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a0">Voronoi</a> ()</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#a0"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a1">EnableDistance</a> (bool enable=true)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Enables or disables applying the distance from the nearest seed point to the output value. <a href="#a1"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a2">GetDisplacement</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the displacement value of the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells. <a href="#a2"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a3">GetFrequency</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the frequency of the seed points. <a href="#a3"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a4">GetSourceModuleCount</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of source modules required by this noise module. <a href="#a4"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a5">GetSeed</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the seed value used by the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells. <a href="#a5"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a6">IsDistanceEnabled</a> () const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Determines if the distance from the nearest seed point is applied to the output value. <a href="#a6"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a7">GetValue</a> (double x, double y, double z) const </td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an output value given the coordinates of the specified input value. <a href="#a7"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a8">SetDisplacement</a> (double displacement)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the displacement value of the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells. <a href="#a8"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a9">SetFrequency</a> (double frequency)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the frequency of the seed points. <a href="#a9"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#a10">SetSeed</a> (int seed)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the seed value used by the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells. <a href="#a10"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p0" doxytag="noise::module::Voronoi::m_displacement"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#p0">m_displacement</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Scale of the random displacement to apply to each <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cell. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p1" doxytag="noise::module::Voronoi::m_enableDistance"></a>+bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#p1">m_enableDistance</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Determines if the distance from the nearest seed point is applied to the output value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p2" doxytag="noise::module::Voronoi::m_frequency"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#p2">m_frequency</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Frequency of the seed points. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="p3" doxytag="noise::module::Voronoi::m_seed"></a>+int </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html#p3">m_seed</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Seed value used by the coherent-noise function to determine the positions of the seed points. <br></td></tr>+</table>+<hr><h2>Constructor & Destructor Documentation</h2>+<a class="anchor" name="a0" doxytag="noise::module::Voronoi::Voronoi"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">Voronoi::Voronoi </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Constructor. +<p>+The default displacement value is set to <a class="el" href="group__generatormodules.html#ga23">noise::module::DEFAULT_VORONOI_DISPLACEMENT</a>.<p>+The default frequency is set to <a class="el" href="group__generatormodules.html#ga24">noise::module::DEFAULT_VORONOI_FREQUENCY</a>.<p>+The default seed value is set to <a class="el" href="group__generatormodules.html#ga25">noise::module::DEFAULT_VORONOI_SEED</a>. </td>+ </tr>+</table>+<hr><h2>Member Function Documentation</h2>+<a class="anchor" name="a1" doxytag="noise::module::Voronoi::EnableDistance"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Voronoi::EnableDistance </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">bool </td>+ <td class="mdname1" valign="top" nowrap> <em>enable</em> = <code>true</code> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Enables or disables applying the distance from the nearest seed point to the output value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>enable</em> </td><td>Specifies whether to apply the distance to the output value or not.</td></tr>+ </table>+</dl>+Applying the distance from the nearest seed point to the output value causes the points in the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells to increase in value the further away that point is from the nearest seed point. Setting this value to <em>true</em> (and setting the displacement to a near-zero value) causes this noise module to generate cracked mud formations. </td>+ </tr>+</table>+<a class="anchor" name="a2" doxytag="noise::module::Voronoi::GetDisplacement"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Voronoi::GetDisplacement </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the displacement value of the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The displacement value of the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells.</dd></dl>+This noise module assigns each <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cell with a random constant value from a coherent-noise function. The <em>displacement value</em> controls the range of random values to assign to each cell. The range of random values is +/- the displacement value. </td>+ </tr>+</table>+<a class="anchor" name="a3" doxytag="noise::module::Voronoi::GetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::module::Voronoi::GetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the frequency of the seed points. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The frequency of the seed points.</dd></dl>+The frequency determines the size of the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells and the distance between these cells. </td>+ </tr>+</table>+<a class="anchor" name="a5" doxytag="noise::module::Voronoi::GetSeed"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int noise::module::Voronoi::GetSeed </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the seed value used by the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The seed value.</dd></dl>+The positions of the seed values are calculated by a coherent-noise function. By modifying the seed value, the output of that function changes. </td>+ </tr>+</table>+<a class="anchor" name="a4" doxytag="noise::module::Voronoi::GetSourceModuleCount"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">virtual int noise::module::Voronoi::GetSourceModuleCount </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline, virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the number of source modules required by this noise module. +<p>+<dl compact><dt><b>Returns:</b></dt><dd>The number of source modules required by this noise module. </dd></dl>++<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a7" doxytag="noise::module::Voronoi::GetValue"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double Voronoi::GetValue </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"> const<code> [virtual]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an output value given the coordinates of the specified input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The output value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>All source modules required by this noise module have been passed to the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method.</dd></dl>+Before an application can call this method, it must first connect all required source modules via the <a class="el" href="classnoise_1_1module_1_1Module.html#a5">SetSourceModule()</a> method. If these source modules are not connected to this noise module, this method raises a debug assertion.<p>+To determine the number of source modules required by this noise module, call the <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a4">GetSourceModuleCount()</a> method. +<p>+Implements <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>. </td>+ </tr>+</table>+<a class="anchor" name="a6" doxytag="noise::module::Voronoi::IsDistanceEnabled"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">bool noise::module::Voronoi::IsDistanceEnabled </td>+ <td class="md" valign="top">( </td>+ <td class="mdname1" valign="top" nowrap> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap> const<code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Determines if the distance from the nearest seed point is applied to the output value. +<p>+<dl compact><dt><b>Returns:</b></dt><dd><ul>+<li><em>true</em> if the distance is applied to the output value.</li><li><em>false</em> if not.</li></ul>+</dd></dl>+Applying the distance from the nearest seed point to the output value causes the points in the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells to increase in value the further away that point is from the nearest seed point. </td>+ </tr>+</table>+<a class="anchor" name="a8" doxytag="noise::module::Voronoi::SetDisplacement"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Voronoi::SetDisplacement </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>displacement</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the displacement value of the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>displacement</em> </td><td>The displacement value of the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells.</td></tr>+ </table>+</dl>+This noise module assigns each <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cell with a random constant value from a coherent-noise function. The <em>displacement value</em> controls the range of random values to assign to each cell. The range of random values is +/- the displacement value. </td>+ </tr>+</table>+<a class="anchor" name="a9" doxytag="noise::module::Voronoi::SetFrequency"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Voronoi::SetFrequency </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>frequency</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the frequency of the seed points. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>frequency</em> </td><td>The frequency of the seed points.</td></tr>+ </table>+</dl>+The frequency determines the size of the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells and the distance between these cells. </td>+ </tr>+</table>+<a class="anchor" name="a10" doxytag="noise::module::Voronoi::SetSeed"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::module::Voronoi::SetSeed </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname1" valign="top" nowrap> <em>seed</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Sets the seed value used by the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>The seed value.</td></tr>+ </table>+</dl>+The positions of the seed values are calculated by a coherent-noise function. By modifying the seed value, the output of that function changes. </td>+ </tr>+</table>+<hr>The documentation for this class was generated from the following files:<ul>+<li><a class="el" href="voronoi_8h-source.html">voronoi.h</a><li>voronoi.cpp</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 434 bytes)
@@ -0,0 +1,201 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>const.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// const.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_CONST_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_CONST_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00043 +<a name="l00045"></a><a class="code" href="group__generatormodules.html#ga7">00045</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_CONST_VALUE = 0.0;+00046 +<a name="l00057"></a><a class="code" href="classnoise_1_1module_1_1Const.html">00057</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Const.html">Const</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00058 {+00059 +00060 <span class="keyword">public</span>:+00061 +00066 <a class="code" href="classnoise_1_1module_1_1Const.html">Const</a> ();+00067 +<a name="l00071"></a><a class="code" href="classnoise_1_1module_1_1Const.html#a1">00071</a> <span class="keywordtype">double</span> GetConstValue ()<span class="keyword"> const</span>+00072 <span class="keyword"> </span>{+00073 <span class="keywordflow">return</span> m_constValue;+00074 }+00075 +<a name="l00076"></a><a class="code" href="classnoise_1_1module_1_1Const.html#a2">00076</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00077 <span class="keyword"> </span>{+00078 <span class="keywordflow">return</span> 0;+00079 }+00080 +<a name="l00081"></a><a class="code" href="classnoise_1_1module_1_1Const.html#a3">00081</a> <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z)<span class="keyword"> const</span>+00082 <span class="keyword"> </span>{+00083 <span class="keywordflow">return</span> m_constValue;+00084 }+00085 +<a name="l00089"></a><a class="code" href="classnoise_1_1module_1_1Const.html#a4">00089</a> <span class="keywordtype">void</span> SetConstValue (<span class="keywordtype">double</span> constValue)+00090 {+00091 m_constValue = constValue;+00092 }+00093 +00094 <span class="keyword">protected</span>:+00095 +<a name="l00097"></a><a class="code" href="classnoise_1_1module_1_1Const.html#p0">00097</a> <span class="keywordtype">double</span> m_constValue;+00098 +00099 };+00100 +00102 +00104 +00106 +00107 }+00108 +00109 }+00110 +00111 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 3944 bytes)
@@ -0,0 +1,218 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>curve.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// curve.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_CURVE_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_CURVE_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +<a name="l00040"></a><a class="code" href="structnoise_1_1module_1_1ControlPoint.html">00040</a> <span class="keyword">struct </span><a class="code" href="structnoise_1_1module_1_1ControlPoint.html">ControlPoint</a>+00041 {+00042 +<a name="l00044"></a><a class="code" href="structnoise_1_1module_1_1ControlPoint.html#o0">00044</a> <span class="keywordtype">double</span> inputValue;+00045 +<a name="l00047"></a><a class="code" href="structnoise_1_1module_1_1ControlPoint.html#o1">00047</a> <span class="keywordtype">double</span> outputValue;+00048 +00049 };+00050 +00053 +00056 +<a name="l00081"></a><a class="code" href="classnoise_1_1module_1_1Curve.html">00081</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Curve.html">Curve</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00082 {+00083 +00084 <span class="keyword">public</span>:+00085 +00087 <a class="code" href="classnoise_1_1module_1_1Curve.html">Curve</a> ();+00088 +00090 ~<a class="code" href="classnoise_1_1module_1_1Curve.html">Curve</a> ();+00091 +00103 <span class="keywordtype">void</span> AddControlPoint (<span class="keywordtype">double</span> inputValue, <span class="keywordtype">double</span> outputValue);+00104 +00108 <span class="keywordtype">void</span> ClearAllControlPoints ();+00109 +<a name="l00120"></a><a class="code" href="classnoise_1_1module_1_1Curve.html#a4">00120</a> <span class="keyword">const</span> <a class="code" href="structnoise_1_1module_1_1ControlPoint.html">ControlPoint</a>* GetControlPointArray ()<span class="keyword"> const</span>+00121 <span class="keyword"> </span>{+00122 <span class="keywordflow">return</span> m_pControlPoints;+00123 }+00124 +<a name="l00128"></a><a class="code" href="classnoise_1_1module_1_1Curve.html#a5">00128</a> <span class="keywordtype">int</span> GetControlPointCount ()<span class="keyword"> const</span>+00129 <span class="keyword"> </span>{+00130 <span class="keywordflow">return</span> m_controlPointCount;+00131 }+00132 +<a name="l00133"></a><a class="code" href="classnoise_1_1module_1_1Curve.html#a6">00133</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00134 <span class="keyword"> </span>{+00135 <span class="keywordflow">return</span> 1;+00136 }+00137 +00138 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00139 +00140 <span class="keyword">protected</span>:+00141 +00158 <span class="keywordtype">int</span> FindInsertionPos (<span class="keywordtype">double</span> inputValue);+00159 +00176 <span class="keywordtype">void</span> InsertAtPos (<span class="keywordtype">int</span> insertionPos, <span class="keywordtype">double</span> inputValue,+00177 <span class="keywordtype">double</span> outputValue);+00178 +<a name="l00180"></a><a class="code" href="classnoise_1_1module_1_1Curve.html#p0">00180</a> <span class="keywordtype">int</span> m_controlPointCount;+00181 +<a name="l00183"></a><a class="code" href="classnoise_1_1module_1_1Curve.html#p1">00183</a> <a class="code" href="structnoise_1_1module_1_1ControlPoint.html">ControlPoint</a>* m_pControlPoints;+00184 +00185 };+00186 +00188 +00190 +00192 +00193 }+00194 +00195 }+00196 +00197 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,195 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000002.html">model</a></div>+<h1>cylinder.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// cylinder.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODEL_CYLINDER_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODEL_CYLINDER_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include <assert.h></span>+00027 <span class="preprocessor">#include <math.h></span>+00028 <span class="preprocessor">#include <stdlib.h></span>+00029 <span class="preprocessor">#include "../module/modulebase.h"</span>+00030 +00031 <span class="keyword">namespace </span>noise+00032 {+00033 +00034 <span class="keyword">namespace </span>model+00035 {+00036 +00039 +00043 +<a name="l00059"></a><a class="code" href="classnoise_1_1model_1_1Cylinder.html">00059</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1model_1_1Cylinder.html">Cylinder</a>+00060 {+00061 +00062 <span class="keyword">public</span>:+00063 +00065 <a class="code" href="classnoise_1_1model_1_1Cylinder.html">Cylinder</a> ();+00066 +00071 <a class="code" href="classnoise_1_1model_1_1Cylinder.html">Cylinder</a> (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& module);+00072 +<a name="l00079"></a><a class="code" href="classnoise_1_1model_1_1Cylinder.html#a2">00079</a> <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& GetModule ()<span class="keyword"> const</span>+00080 <span class="keyword"> </span>{+00081 assert (m_pModule != NULL);+00082 <span class="keywordflow">return</span> *m_pModule;+00083 }+00084 +00102 <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> angle, <span class="keywordtype">double</span> height) <span class="keyword">const</span>;+00103 +<a name="l00111"></a><a class="code" href="classnoise_1_1model_1_1Cylinder.html#a4">00111</a> <span class="keywordtype">void</span> SetModule (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& module)+00112 {+00113 m_pModule = &module;+00114 }+00115 +00116 <span class="keyword">private</span>:+00117 +00119 <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>* m_pModule;+00120 +00121 };+00122 +00124 +00126 +00127 }+00128 +00129 }+00130 +00131 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,198 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>cylinders.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// cylinders.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_CYLINDERS_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_CYLINDERS_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00044"></a><a class="code" href="group__generatormodules.html#ga8">00044</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_CYLINDERS_FREQUENCY = 1.0;+00045 +<a name="l00072"></a><a class="code" href="classnoise_1_1module_1_1Cylinders.html">00072</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Cylinders.html">Cylinders</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00073 {+00074 +00075 <span class="keyword">public</span>:+00076 +00081 <a class="code" href="classnoise_1_1module_1_1Cylinders.html">Cylinders</a> ();+00082 +<a name="l00089"></a><a class="code" href="classnoise_1_1module_1_1Cylinders.html#a1">00089</a> <span class="keywordtype">double</span> GetFrequency ()<span class="keyword"> const</span>+00090 <span class="keyword"> </span>{+00091 <span class="keywordflow">return</span> m_frequency;+00092 }+00093 +<a name="l00094"></a><a class="code" href="classnoise_1_1module_1_1Cylinders.html#a2">00094</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00095 <span class="keyword"> </span>{+00096 <span class="keywordflow">return</span> 0;+00097 }+00098 +00099 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00100 +<a name="l00107"></a><a class="code" href="classnoise_1_1module_1_1Cylinders.html#a4">00107</a> <span class="keywordtype">void</span> SetFrequency (<span class="keywordtype">double</span> frequency)+00108 {+00109 m_frequency = frequency;+00110 }+00111 +00112 <span class="keyword">protected</span>:+00113 +<a name="l00115"></a><a class="code" href="classnoise_1_1module_1_1Cylinders.html#p0">00115</a> <span class="keywordtype">double</span> m_frequency;+00116 +00117 };+00118 +00120 +00122 +00124 +00125 }+00126 +00127 }+00128 +00129 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,157 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a></div>+<h1>src Directory Reference</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Directories</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">directory </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000002.html">model</a></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">directory </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000001.html">module</a></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">directory </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_000003.html">win32</a></td></tr>++<tr><td colspan="2"><br><h2>Files</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>basictypes.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>exception.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>interp.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>latlon.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>latlon.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>mathconsts.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>misc.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>noise.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>noisegen.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>noisegen.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>vectortable.h</b></td></tr>++</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,246 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>module Directory Reference</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Files</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>abs.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>abs.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>add.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>add.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>billow.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>billow.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>blend.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>blend.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>cache.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>cache.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>checkerboard.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>checkerboard.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>clamp.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>clamp.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>const.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>const.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>curve.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>curve.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>cylinders.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>cylinders.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>displace.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>displace.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>exponent.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>exponent.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>invert.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>invert.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>max.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>max.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>min.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>min.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>module.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>modulebase.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>modulebase.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>multiply.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>multiply.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>perlin.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>perlin.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>power.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>power.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>ridgedmulti.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>ridgedmulti.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>rotatepoint.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>rotatepoint.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>scalebias.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>scalebias.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>scalepoint.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>scalepoint.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>select.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>select.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>spheres.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>spheres.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>terrace.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>terrace.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>translatepoint.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>translatepoint.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>turbulence.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>turbulence.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>voronoi.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>voronoi.h</b></td></tr>++</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,146 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000002.html">model</a></div>+<h1>model Directory Reference</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Files</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>cylinder.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>cylinder.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>line.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>line.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>model.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>plane.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>plane.h</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>sphere.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>sphere.h</b></td></tr>++</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,132 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000003.html">win32</a></div>+<h1>win32 Directory Reference</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Files</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>dllmain.cpp</b></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>resource.h</b></td></tr>++</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,232 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>displace.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// displace.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_DISPLACE_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_DISPLACE_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00043 +<a name="l00069"></a><a class="code" href="classnoise_1_1module_1_1Displace.html">00069</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Displace.html">Displace</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00070 {+00071 +00072 <span class="keyword">public</span>:+00073 +00075 <a class="code" href="classnoise_1_1module_1_1Displace.html">Displace</a> ();+00076 +<a name="l00077"></a><a class="code" href="classnoise_1_1module_1_1Displace.html#a1">00077</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00078 <span class="keyword"> </span>{+00079 <span class="keywordflow">return</span> 4;+00080 }+00081 +00082 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00083 +<a name="l00098"></a><a class="code" href="classnoise_1_1module_1_1Displace.html#a3">00098</a> <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& GetXDisplaceModule ()<span class="keyword"> const</span>+00099 <span class="keyword"> </span>{+00100 <span class="keywordflow">if</span> (m_pSourceModule == NULL || m_pSourceModule[1] == NULL) {+00101 <span class="keywordflow">throw</span> <a class="code" href="classnoise_1_1ExceptionNoModule.html">noise::ExceptionNoModule</a> ();+00102 }+00103 <span class="keywordflow">return</span> *(m_pSourceModule[1]);+00104 }+00105 +<a name="l00120"></a><a class="code" href="classnoise_1_1module_1_1Displace.html#a4">00120</a> <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& GetYDisplaceModule ()<span class="keyword"> const</span>+00121 <span class="keyword"> </span>{+00122 <span class="keywordflow">if</span> (m_pSourceModule == NULL || m_pSourceModule[2] == NULL) {+00123 <span class="keywordflow">throw</span> <a class="code" href="classnoise_1_1ExceptionNoModule.html">noise::ExceptionNoModule</a> ();+00124 }+00125 <span class="keywordflow">return</span> *(m_pSourceModule[2]);+00126 }+00127 +<a name="l00142"></a><a class="code" href="classnoise_1_1module_1_1Displace.html#a5">00142</a> <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& GetZDisplaceModule ()<span class="keyword"> const</span>+00143 <span class="keyword"> </span>{+00144 <span class="keywordflow">if</span> (m_pSourceModule == NULL || m_pSourceModule[3] == NULL) {+00145 <span class="keywordflow">throw</span> <a class="code" href="classnoise_1_1ExceptionNoModule.html">noise::ExceptionNoModule</a> ();+00146 }+00147 <span class="keywordflow">return</span> *(m_pSourceModule[3]);+00148 }+00149 +<a name="l00170"></a><a class="code" href="classnoise_1_1module_1_1Displace.html#a6">00170</a> <span class="keywordtype">void</span> SetDisplaceModules (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& xDisplaceModule,+00171 <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& yDisplaceModule, <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& zDisplaceModule)+00172 {+00173 SetXDisplaceModule (xDisplaceModule);+00174 SetYDisplaceModule (yDisplaceModule);+00175 SetZDisplaceModule (zDisplaceModule);+00176 }+00177 +<a name="l00195"></a><a class="code" href="classnoise_1_1module_1_1Displace.html#a7">00195</a> <span class="keywordtype">void</span> SetXDisplaceModule (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& xDisplaceModule)+00196 {+00197 assert (m_pSourceModule != NULL);+00198 m_pSourceModule[1] = &xDisplaceModule;+00199 }+00200 +<a name="l00218"></a><a class="code" href="classnoise_1_1module_1_1Displace.html#a8">00218</a> <span class="keywordtype">void</span> SetYDisplaceModule (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& yDisplaceModule)+00219 {+00220 assert (m_pSourceModule != NULL);+00221 m_pSourceModule[2] = &yDisplaceModule;+00222 }+00223 +<a name="l00241"></a><a class="code" href="classnoise_1_1module_1_1Displace.html#a9">00241</a> <span class="keywordtype">void</span> SetZDisplaceModule (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& zDisplaceModule)+00242 {+00243 assert (m_pSourceModule != NULL);+00244 m_pSourceModule[3] = &zDisplaceModule;+00245 }+00246 +00247 };+00248 +00250 +00252 +00254 +00255 }+00256 +00257 }+00258 +00259 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,249 @@+body +{ + background-color: #99cccc; + background-image: url(background.png); + display: block; + font-family: verdana,helvetica,sans-serif; + font-size: 10pt; + margin-left: auto; + margin-right: auto; + max-width: 70em; +} + +img +{ + background-color: white; + border-style: none; +} + +span.header +{ + font-weight: bold; +} + +table.layout +{ + border-collapse: collapse; + border-style: none; + border-width: 0px; + margin: 0px; + padding: 0px; + width: 100%; +} + +td.header +{ + background-color: white; + background-repeat: no-repeat; + padding: 6pt; + vertical-align: top; +} + +td.sidebar +{ + background-color: #99cccc; + border-color: #669999; + border-style: none; + border-width: 0px; + padding: 3pt; + vertical-align: top; + width: 18em; + font-size: 8pt; +} + +td.sidebar a:hover +{ + color: red; +} + +td.content +{ + background-color: white; + vertical-align: top; + padding: 6pt; +} + +td.footer +{ + background-color: white; + vertical-align: bottom; +} + +ul.toc +{ + padding-left: 1em; +} + +td.content img +{ + padding: 4pt; +} + +div.fragment +{ + background-color: #ddeeee; + border-color: #996666; + border-style: dashed; + border-width: 1px; + font-family: monospace; + padding: 8pt; + margin: 8pt; + margin-left: 24pt; +} + +td { + font-size: 10pt; +} + + + + + +caption +{ + font-weight: bold +} + +a.qindex +{ +} + +a.qindexRef +{ +} + +a.el +{ + text-decoration: none; + font-weight: bold +} + +a.elRef +{ + font-weight: bold +} + +a.code +{ + text-decoration: none; + font-weight: normal; + color: #4444ee +} + +a.codeRef +{ + font-weight: normal; + color: #4444ee +} + +dl.el +{ + margin-left: -1cm +} + +div.ah +{ + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px +} + +div.groupHeader +{ + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold +} + +div.groupText +{ + margin-left: 16px; + font-style: italic; +} + +td.indexkey +{ + background-color: #ddeeee; + font-weight: bold; + padding-right: 10px; + padding-top: 2px; + padding-left: 10px; + padding-bottom: 2px; + margin-left: 0px; + margin-right: 0px; + margin-top: 2px; + margin-bottom: 2px +} + +td.indexvalue +{ + background-color: #ddeeee; + font-style: italic; + padding-right: 10px; + padding-top: 2px; + padding-left: 10px; + padding-bottom: 2px; + margin-left: 0px; + margin-right: 0px; + margin-top: 2px; + margin-bottom: 2px +} + +td.md +{ + background-color: #ddeeee; + font-weight: bold; +} + +td.mdname1 +{ + background-color: #ddeeee; + font-weight: bold; + color: #602020; +} + +td.mdname +{ + background-color: #ddeeee; + font-weight: bold; + color: #602020; + width: 600px; +} + +span.keyword +{ + color: #008000 +} + +span.keywordtype +{ + color: #604020 +} + +span.keywordflow +{ + color: #e08000 +} + +span.comment +{ + color: #800000 +} + +span.preprocessor +{ + color: #806020 +} + +span.stringliteral +{ + color: #002080 +} + +span.charliteral +{ + color: #008080 +}
binary file changed (absent → 1281 bytes)
@@ -0,0 +1,175 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a></div>+<h1>exception.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// exception.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_EXCEPTION_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_EXCEPTION_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="keyword">namespace </span>noise+00027 {+00028 +00031 +<a name="l00033"></a><a class="code" href="classnoise_1_1Exception.html">00033</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1Exception.html">Exception</a>+00034 {+00035 };+00036 +<a name="l00040"></a><a class="code" href="classnoise_1_1ExceptionInvalidParam.html">00040</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1ExceptionInvalidParam.html">ExceptionInvalidParam</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1Exception.html">Exception</a>+00041 {+00042 };+00043 +<a name="l00052"></a><a class="code" href="classnoise_1_1ExceptionNoModule.html">00052</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1ExceptionNoModule.html">ExceptionNoModule</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1Exception.html">Exception</a>+00053 {+00054 };+00055 +<a name="l00059"></a><a class="code" href="classnoise_1_1ExceptionOutOfMemory.html">00059</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1ExceptionOutOfMemory.html">ExceptionOutOfMemory</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1Exception.html">Exception</a>+00060 {+00061 };+00062 +<a name="l00066"></a><a class="code" href="classnoise_1_1ExceptionUnknown.html">00066</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1ExceptionUnknown.html">ExceptionUnknown</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1Exception.html">Exception</a>+00067 {+00068 };+00069 +00071 +00072 }+00073 +00074 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,198 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>exponent.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// exponent.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_EXPONENT_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_EXPONENT_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00044"></a><a class="code" href="group__modifiermodules.html#ga2">00044</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_EXPONENT = 1.0;+00045 +<a name="l00057"></a><a class="code" href="classnoise_1_1module_1_1Exponent.html">00057</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Exponent.html">Exponent</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00058 {+00059 +00060 <span class="keyword">public</span>:+00061 +00065 <a class="code" href="classnoise_1_1module_1_1Exponent.html">Exponent</a> ();+00066 +<a name="l00076"></a><a class="code" href="classnoise_1_1module_1_1Exponent.html#a1">00076</a> <span class="keywordtype">double</span> GetExponent ()<span class="keyword"> const</span>+00077 <span class="keyword"> </span>{+00078 <span class="keywordflow">return</span> m_exponent;+00079 }+00080 +<a name="l00081"></a><a class="code" href="classnoise_1_1module_1_1Exponent.html#a2">00081</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00082 <span class="keyword"> </span>{+00083 <span class="keywordflow">return</span> 1;+00084 }+00085 +00086 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00087 +<a name="l00097"></a><a class="code" href="classnoise_1_1module_1_1Exponent.html#a4">00097</a> <span class="keywordtype">void</span> SetExponent (<span class="keywordtype">double</span> exponent)+00098 {+00099 m_exponent = exponent;+00100 }+00101 +00102 <span class="keyword">protected</span>:+00103 +<a name="l00105"></a><a class="code" href="classnoise_1_1module_1_1Exponent.html#p0">00105</a> <span class="keywordtype">double</span> m_exponent;+00106 +00107 };+00108 +00110 +00112 +00114 +00115 }+00116 +00117 }+00118 +00119 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,167 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindexHL" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>libnoise File List</h1>Here is a list of all documented files with brief descriptions:<table>+ <tr><td class="indexkey"><b>abs.h</b> <a href="abs_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>add.h</b> <a href="add_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>basictypes.h</b> <a href="basictypes_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>billow.h</b> <a href="billow_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>blend.h</b> <a href="blend_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>cache.h</b> <a href="cache_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>checkerboard.h</b> <a href="checkerboard_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>clamp.h</b> <a href="clamp_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>const.h</b> <a href="const_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>curve.h</b> <a href="curve_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>cylinder.h</b> <a href="cylinder_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>cylinders.h</b> <a href="cylinders_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>displace.h</b> <a href="displace_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>exception.h</b> <a href="exception_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>exponent.h</b> <a href="exponent_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>interp.h</b> <a href="interp_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>invert.h</b> <a href="invert_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>latlon.h</b> <a href="latlon_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>line.h</b> <a href="line_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>mathconsts.h</b> <a href="mathconsts_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>max.h</b> <a href="max_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>min.h</b> <a href="min_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>misc.h</b> <a href="misc_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>model.h</b> <a href="model_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>module.h</b> <a href="module_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>modulebase.h</b> <a href="modulebase_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>multiply.h</b> <a href="multiply_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>noise.h</b> <a href="noise_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>noisegen.h</b> <a href="noisegen_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>perlin.h</b> <a href="perlin_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>plane.h</b> <a href="plane_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>power.h</b> <a href="power_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>resource.h</b> <a href="resource_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>ridgedmulti.h</b> <a href="ridgedmulti_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>rotatepoint.h</b> <a href="rotatepoint_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>scalebias.h</b> <a href="scalebias_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>scalepoint.h</b> <a href="scalepoint_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>select.h</b> <a href="select_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>sphere.h</b> <a href="sphere_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>spheres.h</b> <a href="spheres_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>terrace.h</b> <a href="terrace_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>translatepoint.h</b> <a href="translatepoint_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>turbulence.h</b> <a href="turbulence_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>vectortable.h</b> <a href="vectortable_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+ <tr><td class="indexkey"><b>voronoi.h</b> <a href="voronoi_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>+</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,327 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindexHL" href="functions.html">Class Members</a></div>+<div class="qindex"><a class="qindexHL" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>+<div class="qindex"><a class="qindex" href="#index_a">a</a> | <a class="qindex" href="#index_b">b</a> | <a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_d">d</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_f">f</a> | <a class="qindex" href="#index_g">g</a> | <a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_l">l</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_o">o</a> | <a class="qindex" href="#index_p">p</a> | <a class="qindex" href="#index_r">r</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_t">t</a> | <a class="qindex" href="#index_v">v</a> | <a class="qindex" href="#index_~">~</a></div>++<p>++<p>+Here is a list of all documented class members with links to the class documentation for each member:<h3><a class="anchor" name="index_a">- a -</a></h3><ul>+<li>Abs()+: <a class="el" href="classnoise_1_1module_1_1Abs.html#a0">noise::module::Abs</a><li>Add()+: <a class="el" href="classnoise_1_1module_1_1Add.html#a0">noise::module::Add</a><li>AddControlPoint()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a2">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a2">noise::module::Curve</a></ul>+<h3><a class="anchor" name="index_b">- b -</a></h3><ul>+<li>Billow()+: <a class="el" href="classnoise_1_1module_1_1Billow.html#a0">noise::module::Billow</a><li>Blend()+: <a class="el" href="classnoise_1_1module_1_1Blend.html#a0">noise::module::Blend</a></ul>+<h3><a class="anchor" name="index_c">- c -</a></h3><ul>+<li>Cache()+: <a class="el" href="classnoise_1_1module_1_1Cache.html#a0">noise::module::Cache</a><li>CalcSpectralWeights()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#b0">noise::module::RidgedMulti</a><li>Checkerboard()+: <a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a0">noise::module::Checkerboard</a><li>Clamp()+: <a class="el" href="classnoise_1_1module_1_1Clamp.html#a0">noise::module::Clamp</a><li>ClearAllControlPoints()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a3">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a3">noise::module::Curve</a><li>Const()+: <a class="el" href="classnoise_1_1module_1_1Const.html#a0">noise::module::Const</a><li>Curve()+: <a class="el" href="classnoise_1_1module_1_1Curve.html#a0">noise::module::Curve</a><li>Cylinder()+: <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a1">noise::model::Cylinder</a><li>Cylinders()+: <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a0">noise::module::Cylinders</a></ul>+<h3><a class="anchor" name="index_d">- d -</a></h3><ul>+<li>Displace()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a0">noise::module::Displace</a></ul>+<h3><a class="anchor" name="index_e">- e -</a></h3><ul>+<li>EnableDistance()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a1">noise::module::Voronoi</a><li>Exponent()+: <a class="el" href="classnoise_1_1module_1_1Exponent.html#a0">noise::module::Exponent</a></ul>+<h3><a class="anchor" name="index_f">- f -</a></h3><ul>+<li>FindInsertionPos()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#b0">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#b0">noise::module::Curve</a></ul>+<h3><a class="anchor" name="index_g">- g -</a></h3><ul>+<li>GetAttenuate()+: <a class="el" href="classnoise_1_1model_1_1Line.html#a2">noise::model::Line</a><li>GetBias()+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a1">noise::module::ScaleBias</a><li>GetConstValue()+: <a class="el" href="classnoise_1_1module_1_1Const.html#a1">noise::module::Const</a><li>GetControlModule()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a1">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Blend.html#a1">noise::module::Blend</a><li>GetControlPointArray()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a4">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a4">noise::module::Curve</a><li>GetControlPointCount()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a5">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a5">noise::module::Curve</a><li>GetDisplacement()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a2">noise::module::Voronoi</a><li>GetEdgeFalloff()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a2">noise::module::Select</a><li>GetExponent()+: <a class="el" href="classnoise_1_1module_1_1Exponent.html#a1">noise::module::Exponent</a><li>GetFrequency()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a3">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a1">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#a1">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a1">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a1">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a1">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a1">noise::module::Billow</a><li>GetLacunarity()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a2">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a2">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a2">noise::module::Billow</a><li>GetLowerBound()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a3">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a1">noise::module::Clamp</a><li>GetModule()+: <a class="el" href="classnoise_1_1model_1_1Sphere.html#a2">noise::model::Sphere</a>, <a class="el" href="classnoise_1_1model_1_1Plane.html#a2">noise::model::Plane</a>, <a class="el" href="classnoise_1_1model_1_1Line.html#a3">noise::model::Line</a>, <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a2">noise::model::Cylinder</a><li>GetNoiseQuality()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a3">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a3">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a3">noise::module::Billow</a><li>GetOctaveCount()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a4">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a4">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a4">noise::module::Billow</a><li>GetPersistence()+: <a class="el" href="classnoise_1_1module_1_1Perlin.html#a5">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a5">noise::module::Billow</a><li>GetPower()+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a2">noise::module::Turbulence</a><li>GetRoughnessCount()+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a3">noise::module::Turbulence</a><li>GetScale()+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a2">noise::module::ScaleBias</a><li>GetSeed()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a5">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a4">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a5">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a6">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a6">noise::module::Billow</a><li>GetSourceModule()+: <a class="el" href="classnoise_1_1module_1_1Module.html#a2">noise::module::Module</a><li>GetSourceModuleCount()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a4">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a5">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a1">noise::module::TranslatePoint</a>, <a class="el" href="classnoise_1_1module_1_1Terrace.html#a6">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#a2">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1Select.html#a4">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a1">noise::module::ScalePoint</a>, <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a3">noise::module::ScaleBias</a>, <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a1">noise::module::RotatePoint</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a6">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Power.html#a1">noise::module::Power</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a7">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Multiply.html#a1">noise::module::Multiply</a>, <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>, <a class="el" href="classnoise_1_1module_1_1Min.html#a1">noise::module::Min</a>, <a class="el" href="classnoise_1_1module_1_1Max.html#a1">noise::module::Max</a>, <a class="el" href="classnoise_1_1module_1_1Invert.html#a1">noise::module::Invert</a>, <a class="el" href="classnoise_1_1module_1_1Exponent.html#a2">noise::module::Exponent</a>, <a class="el" href="classnoise_1_1module_1_1Displace.html#a1">noise::module::Displace</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a2">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a6">noise::module::Curve</a>, <a class="el" href="classnoise_1_1module_1_1Const.html#a2">noise::module::Const</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a2">noise::module::Clamp</a>, <a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a1">noise::module::Checkerboard</a>, <a class="el" href="classnoise_1_1module_1_1Cache.html#a1">noise::module::Cache</a>, <a class="el" href="classnoise_1_1module_1_1Blend.html#a2">noise::module::Blend</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a7">noise::module::Billow</a>, <a class="el" href="classnoise_1_1module_1_1Add.html#a1">noise::module::Add</a>, <a class="el" href="classnoise_1_1module_1_1Abs.html#a1">noise::module::Abs</a><li>GetUpperBound()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a5">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a3">noise::module::Clamp</a><li>GetValue()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a7">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a6">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a2">noise::module::TranslatePoint</a>, <a class="el" href="classnoise_1_1module_1_1Terrace.html#a9">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#a3">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1Select.html#a6">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a2">noise::module::ScalePoint</a>, <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a4">noise::module::ScaleBias</a>, <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a2">noise::module::RotatePoint</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a7">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Power.html#a2">noise::module::Power</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a8">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Multiply.html#a2">noise::module::Multiply</a>, <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>, <a class="el" href="classnoise_1_1module_1_1Min.html#a2">noise::module::Min</a>, <a class="el" href="classnoise_1_1module_1_1Max.html#a2">noise::module::Max</a>, <a class="el" href="classnoise_1_1module_1_1Invert.html#a2">noise::module::Invert</a>, <a class="el" href="classnoise_1_1module_1_1Exponent.html#a3">noise::module::Exponent</a>, <a class="el" href="classnoise_1_1module_1_1Displace.html#a2">noise::module::Displace</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a3">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a7">noise::module::Curve</a>, <a class="el" href="classnoise_1_1module_1_1Const.html#a3">noise::module::Const</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a4">noise::module::Clamp</a>, <a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a2">noise::module::Checkerboard</a>, <a class="el" href="classnoise_1_1module_1_1Cache.html#a2">noise::module::Cache</a>, <a class="el" href="classnoise_1_1module_1_1Blend.html#a3">noise::module::Blend</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a8">noise::module::Billow</a>, <a class="el" href="classnoise_1_1module_1_1Add.html#a2">noise::module::Add</a>, <a class="el" href="classnoise_1_1module_1_1Abs.html#a2">noise::module::Abs</a>, <a class="el" href="classnoise_1_1model_1_1Sphere.html#a3">noise::model::Sphere</a>, <a class="el" href="classnoise_1_1model_1_1Plane.html#a3">noise::model::Plane</a>, <a class="el" href="classnoise_1_1model_1_1Line.html#a4">noise::model::Line</a>, <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a3">noise::model::Cylinder</a><li>GetXAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a3">noise::module::RotatePoint</a><li>GetXDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a3">noise::module::Displace</a><li>GetXScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a3">noise::module::ScalePoint</a><li>GetXTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a3">noise::module::TranslatePoint</a><li>GetYAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a4">noise::module::RotatePoint</a><li>GetYDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a4">noise::module::Displace</a><li>GetYScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a4">noise::module::ScalePoint</a><li>GetYTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a4">noise::module::TranslatePoint</a><li>GetZAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a5">noise::module::RotatePoint</a><li>GetZDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a5">noise::module::Displace</a><li>GetZScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a5">noise::module::ScalePoint</a><li>GetZTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a5">noise::module::TranslatePoint</a></ul>+<h3><a class="anchor" name="index_i">- i -</a></h3><ul>+<li>inputValue+: <a class="el" href="structnoise_1_1module_1_1ControlPoint.html#o0">noise::module::ControlPoint</a><li>InsertAtPos()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#b1">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#b1">noise::module::Curve</a><li>Invert()+: <a class="el" href="classnoise_1_1module_1_1Invert.html#a0">noise::module::Invert</a><li>InvertTerraces()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a7">noise::module::Terrace</a><li>IsDistanceEnabled()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a6">noise::module::Voronoi</a><li>IsTerracesInverted()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a8">noise::module::Terrace</a></ul>+<h3><a class="anchor" name="index_l">- l -</a></h3><ul>+<li>Line()+: <a class="el" href="classnoise_1_1model_1_1Line.html#a1">noise::model::Line</a></ul>+<h3><a class="anchor" name="index_m">- m -</a></h3><ul>+<li>m_bias+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#p0">noise::module::ScaleBias</a><li>m_cachedValue+: <a class="el" href="classnoise_1_1module_1_1Cache.html#p0">noise::module::Cache</a><li>m_constValue+: <a class="el" href="classnoise_1_1module_1_1Const.html#p0">noise::module::Const</a><li>m_controlPointCount+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#p0">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#p0">noise::module::Curve</a><li>m_displacement+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#p0">noise::module::Voronoi</a><li>m_edgeFalloff+: <a class="el" href="classnoise_1_1module_1_1Select.html#p0">noise::module::Select</a><li>m_enableDistance+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#p1">noise::module::Voronoi</a><li>m_exponent+: <a class="el" href="classnoise_1_1module_1_1Exponent.html#p0">noise::module::Exponent</a><li>m_frequency+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#p2">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#p0">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p0">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#p0">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#p0">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p0">noise::module::Billow</a><li>m_invertTerraces+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#p1">noise::module::Terrace</a><li>m_isCached+: <a class="el" href="classnoise_1_1module_1_1Cache.html#p1">noise::module::Cache</a><li>m_lacunarity+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p1">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#p1">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p1">noise::module::Billow</a><li>m_lowerBound+: <a class="el" href="classnoise_1_1module_1_1Select.html#p1">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#p0">noise::module::Clamp</a><li>m_noiseQuality+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p2">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#p2">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p2">noise::module::Billow</a><li>m_octaveCount+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p3">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#p3">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p3">noise::module::Billow</a><li>m_pControlPoints+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#p2">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#p1">noise::module::Curve</a><li>m_persistence+: <a class="el" href="classnoise_1_1module_1_1Perlin.html#p4">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p4">noise::module::Billow</a><li>m_power+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#p0">noise::module::Turbulence</a><li>m_pSourceModule+: <a class="el" href="classnoise_1_1module_1_1Module.html#p0">noise::module::Module</a><li>m_pSpectralWeights+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p4">noise::module::RidgedMulti</a><li>m_scale+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#p1">noise::module::ScaleBias</a><li>m_seed+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#p3">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p5">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#p5">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p5">noise::module::Billow</a><li>m_upperBound+: <a class="el" href="classnoise_1_1module_1_1Select.html#p2">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#p1">noise::module::Clamp</a><li>m_x1Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p0">noise::module::RotatePoint</a><li>m_x2Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p1">noise::module::RotatePoint</a><li>m_x3Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p2">noise::module::RotatePoint</a><li>m_xAngle+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p3">noise::module::RotatePoint</a><li>m_xCache+: <a class="el" href="classnoise_1_1module_1_1Cache.html#p2">noise::module::Cache</a><li>m_xDistortModule+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#p1">noise::module::Turbulence</a><li>m_xScale+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p0">noise::module::ScalePoint</a><li>m_xTranslation+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p0">noise::module::TranslatePoint</a><li>m_y1Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p4">noise::module::RotatePoint</a><li>m_y2Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p5">noise::module::RotatePoint</a><li>m_y3Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p6">noise::module::RotatePoint</a><li>m_yAngle+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p7">noise::module::RotatePoint</a><li>m_yCache+: <a class="el" href="classnoise_1_1module_1_1Cache.html#p3">noise::module::Cache</a><li>m_yDistortModule+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#p2">noise::module::Turbulence</a><li>m_yScale+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p1">noise::module::ScalePoint</a><li>m_yTranslation+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p1">noise::module::TranslatePoint</a><li>m_z1Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p8">noise::module::RotatePoint</a><li>m_z2Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p9">noise::module::RotatePoint</a><li>m_z3Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p10">noise::module::RotatePoint</a><li>m_zAngle+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p11">noise::module::RotatePoint</a><li>m_zCache+: <a class="el" href="classnoise_1_1module_1_1Cache.html#p4">noise::module::Cache</a><li>m_zDistortModule+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#p3">noise::module::Turbulence</a><li>m_zScale+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p2">noise::module::ScalePoint</a><li>m_zTranslation+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p2">noise::module::TranslatePoint</a><li>MakeControlPoints()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a10">noise::module::Terrace</a><li>Max()+: <a class="el" href="classnoise_1_1module_1_1Max.html#a0">noise::module::Max</a><li>Min()+: <a class="el" href="classnoise_1_1module_1_1Min.html#a0">noise::module::Min</a><li>Module()+: <a class="el" href="classnoise_1_1module_1_1Module.html#a0">noise::module::Module</a><li>Multiply()+: <a class="el" href="classnoise_1_1module_1_1Multiply.html#a0">noise::module::Multiply</a></ul>+<h3><a class="anchor" name="index_o">- o -</a></h3><ul>+<li>outputValue+: <a class="el" href="structnoise_1_1module_1_1ControlPoint.html#o1">noise::module::ControlPoint</a></ul>+<h3><a class="anchor" name="index_p">- p -</a></h3><ul>+<li>Perlin()+: <a class="el" href="classnoise_1_1module_1_1Perlin.html#a0">noise::module::Perlin</a><li>Plane()+: <a class="el" href="classnoise_1_1model_1_1Plane.html#a1">noise::model::Plane</a><li>Power()+: <a class="el" href="classnoise_1_1module_1_1Power.html#a0">noise::module::Power</a></ul>+<h3><a class="anchor" name="index_r">- r -</a></h3><ul>+<li>RidgedMulti()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a0">noise::module::RidgedMulti</a><li>RotatePoint()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a0">noise::module::RotatePoint</a></ul>+<h3><a class="anchor" name="index_s">- s -</a></h3><ul>+<li>ScaleBias()+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a0">noise::module::ScaleBias</a><li>ScalePoint()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a0">noise::module::ScalePoint</a><li>Select()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a0">noise::module::Select</a><li>SetAngles()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a6">noise::module::RotatePoint</a><li>SetAttenuate()+: <a class="el" href="classnoise_1_1model_1_1Line.html#a5">noise::model::Line</a><li>SetBias()+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a5">noise::module::ScaleBias</a><li>SetBounds()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a7">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a5">noise::module::Clamp</a><li>SetConstValue()+: <a class="el" href="classnoise_1_1module_1_1Const.html#a4">noise::module::Const</a><li>SetControlModule()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a8">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Blend.html#a4">noise::module::Blend</a><li>SetDisplacement()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a8">noise::module::Voronoi</a><li>SetDisplaceModules()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a6">noise::module::Displace</a><li>SetEdgeFalloff()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a9">noise::module::Select</a><li>SetEndPoint()+: <a class="el" href="classnoise_1_1model_1_1Line.html#a6">noise::model::Line</a><li>SetExponent()+: <a class="el" href="classnoise_1_1module_1_1Exponent.html#a4">noise::module::Exponent</a><li>SetFrequency()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a9">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a7">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#a4">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a8">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a9">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a4">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a9">noise::module::Billow</a><li>SetLacunarity()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a9">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a10">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a10">noise::module::Billow</a><li>SetModule()+: <a class="el" href="classnoise_1_1model_1_1Sphere.html#a4">noise::model::Sphere</a>, <a class="el" href="classnoise_1_1model_1_1Plane.html#a4">noise::model::Plane</a>, <a class="el" href="classnoise_1_1model_1_1Line.html#a7">noise::model::Line</a>, <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a4">noise::model::Cylinder</a><li>SetNoiseQuality()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a10">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a11">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a11">noise::module::Billow</a><li>SetOctaveCount()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a11">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a12">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a12">noise::module::Billow</a><li>SetPersistence()+: <a class="el" href="classnoise_1_1module_1_1Perlin.html#a13">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a13">noise::module::Billow</a><li>SetPower()+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a8">noise::module::Turbulence</a><li>SetRoughness()+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a9">noise::module::Turbulence</a><li>SetScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a7">noise::module::ScalePoint</a>, <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a6">noise::module::ScaleBias</a><li>SetSeed()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a10">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a10">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a12">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a14">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a14">noise::module::Billow</a><li>SetSourceModule()+: <a class="el" href="classnoise_1_1module_1_1Module.html#a5">noise::module::Module</a>, <a class="el" href="classnoise_1_1module_1_1Cache.html#a3">noise::module::Cache</a><li>SetStartPoint()+: <a class="el" href="classnoise_1_1model_1_1Line.html#a8">noise::model::Line</a><li>SetTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a7">noise::module::TranslatePoint</a><li>SetXAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a7">noise::module::RotatePoint</a><li>SetXDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a7">noise::module::Displace</a><li>SetXScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a8">noise::module::ScalePoint</a><li>SetXTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a8">noise::module::TranslatePoint</a><li>SetYAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a8">noise::module::RotatePoint</a><li>SetYDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a8">noise::module::Displace</a><li>SetYScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a9">noise::module::ScalePoint</a><li>SetYTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a9">noise::module::TranslatePoint</a><li>SetZAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a9">noise::module::RotatePoint</a><li>SetZDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a9">noise::module::Displace</a><li>SetZScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a10">noise::module::ScalePoint</a><li>SetZTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a10">noise::module::TranslatePoint</a><li>Sphere()+: <a class="el" href="classnoise_1_1model_1_1Sphere.html#a1">noise::model::Sphere</a><li>Spheres()+: <a class="el" href="classnoise_1_1module_1_1Spheres.html#a0">noise::module::Spheres</a></ul>+<h3><a class="anchor" name="index_t">- t -</a></h3><ul>+<li>Terrace()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a0">noise::module::Terrace</a><li>TranslatePoint()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a0">noise::module::TranslatePoint</a><li>Turbulence()+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a0">noise::module::Turbulence</a></ul>+<h3><a class="anchor" name="index_v">- v -</a></h3><ul>+<li>Voronoi()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a0">noise::module::Voronoi</a></ul>+<h3><a class="anchor" name="index_~">- ~ -</a></h3><ul>+<li>~Curve()+: <a class="el" href="classnoise_1_1module_1_1Curve.html#a1">noise::module::Curve</a><li>~Module()+: <a class="el" href="classnoise_1_1module_1_1Module.html#a1">noise::module::Module</a><li>~Terrace()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a1">noise::module::Terrace</a></ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,276 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindexHL" href="functions.html">Class Members</a></div>+<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindexHL" href="functions_func.html">Functions</a> | <a class="qindex" href="functions_vars.html">Variables</a></div>+<div class="qindex"><a class="qindex" href="#index_a">a</a> | <a class="qindex" href="#index_b">b</a> | <a class="qindex" href="#index_c">c</a> | <a class="qindex" href="#index_d">d</a> | <a class="qindex" href="#index_e">e</a> | <a class="qindex" href="#index_f">f</a> | <a class="qindex" href="#index_g">g</a> | <a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_l">l</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_p">p</a> | <a class="qindex" href="#index_r">r</a> | <a class="qindex" href="#index_s">s</a> | <a class="qindex" href="#index_t">t</a> | <a class="qindex" href="#index_v">v</a> | <a class="qindex" href="#index_~">~</a></div>++<p>++<p>+<h3><a class="anchor" name="index_a">- a -</a></h3><ul>+<li>Abs()+: <a class="el" href="classnoise_1_1module_1_1Abs.html#a0">noise::module::Abs</a><li>Add()+: <a class="el" href="classnoise_1_1module_1_1Add.html#a0">noise::module::Add</a><li>AddControlPoint()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a2">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a2">noise::module::Curve</a></ul>+<h3><a class="anchor" name="index_b">- b -</a></h3><ul>+<li>Billow()+: <a class="el" href="classnoise_1_1module_1_1Billow.html#a0">noise::module::Billow</a><li>Blend()+: <a class="el" href="classnoise_1_1module_1_1Blend.html#a0">noise::module::Blend</a></ul>+<h3><a class="anchor" name="index_c">- c -</a></h3><ul>+<li>Cache()+: <a class="el" href="classnoise_1_1module_1_1Cache.html#a0">noise::module::Cache</a><li>CalcSpectralWeights()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#b0">noise::module::RidgedMulti</a><li>Checkerboard()+: <a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a0">noise::module::Checkerboard</a><li>Clamp()+: <a class="el" href="classnoise_1_1module_1_1Clamp.html#a0">noise::module::Clamp</a><li>ClearAllControlPoints()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a3">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a3">noise::module::Curve</a><li>Const()+: <a class="el" href="classnoise_1_1module_1_1Const.html#a0">noise::module::Const</a><li>Curve()+: <a class="el" href="classnoise_1_1module_1_1Curve.html#a0">noise::module::Curve</a><li>Cylinder()+: <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a1">noise::model::Cylinder</a><li>Cylinders()+: <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a0">noise::module::Cylinders</a></ul>+<h3><a class="anchor" name="index_d">- d -</a></h3><ul>+<li>Displace()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a0">noise::module::Displace</a></ul>+<h3><a class="anchor" name="index_e">- e -</a></h3><ul>+<li>EnableDistance()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a1">noise::module::Voronoi</a><li>Exponent()+: <a class="el" href="classnoise_1_1module_1_1Exponent.html#a0">noise::module::Exponent</a></ul>+<h3><a class="anchor" name="index_f">- f -</a></h3><ul>+<li>FindInsertionPos()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#b0">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#b0">noise::module::Curve</a></ul>+<h3><a class="anchor" name="index_g">- g -</a></h3><ul>+<li>GetAttenuate()+: <a class="el" href="classnoise_1_1model_1_1Line.html#a2">noise::model::Line</a><li>GetBias()+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a1">noise::module::ScaleBias</a><li>GetConstValue()+: <a class="el" href="classnoise_1_1module_1_1Const.html#a1">noise::module::Const</a><li>GetControlModule()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a1">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Blend.html#a1">noise::module::Blend</a><li>GetControlPointArray()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a4">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a4">noise::module::Curve</a><li>GetControlPointCount()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a5">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a5">noise::module::Curve</a><li>GetDisplacement()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a2">noise::module::Voronoi</a><li>GetEdgeFalloff()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a2">noise::module::Select</a><li>GetExponent()+: <a class="el" href="classnoise_1_1module_1_1Exponent.html#a1">noise::module::Exponent</a><li>GetFrequency()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a3">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a1">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#a1">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a1">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a1">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a1">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a1">noise::module::Billow</a><li>GetLacunarity()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a2">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a2">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a2">noise::module::Billow</a><li>GetLowerBound()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a3">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a1">noise::module::Clamp</a><li>GetModule()+: <a class="el" href="classnoise_1_1model_1_1Sphere.html#a2">noise::model::Sphere</a>, <a class="el" href="classnoise_1_1model_1_1Plane.html#a2">noise::model::Plane</a>, <a class="el" href="classnoise_1_1model_1_1Line.html#a3">noise::model::Line</a>, <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a2">noise::model::Cylinder</a><li>GetNoiseQuality()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a3">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a3">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a3">noise::module::Billow</a><li>GetOctaveCount()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a4">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a4">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a4">noise::module::Billow</a><li>GetPersistence()+: <a class="el" href="classnoise_1_1module_1_1Perlin.html#a5">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a5">noise::module::Billow</a><li>GetPower()+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a2">noise::module::Turbulence</a><li>GetRoughnessCount()+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a3">noise::module::Turbulence</a><li>GetScale()+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a2">noise::module::ScaleBias</a><li>GetSeed()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a5">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a4">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a5">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a6">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a6">noise::module::Billow</a><li>GetSourceModule()+: <a class="el" href="classnoise_1_1module_1_1Module.html#a2">noise::module::Module</a><li>GetSourceModuleCount()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a4">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a5">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a1">noise::module::TranslatePoint</a>, <a class="el" href="classnoise_1_1module_1_1Terrace.html#a6">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#a2">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1Select.html#a4">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a1">noise::module::ScalePoint</a>, <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a3">noise::module::ScaleBias</a>, <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a1">noise::module::RotatePoint</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a6">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Power.html#a1">noise::module::Power</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a7">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Multiply.html#a1">noise::module::Multiply</a>, <a class="el" href="classnoise_1_1module_1_1Module.html#a3">noise::module::Module</a>, <a class="el" href="classnoise_1_1module_1_1Min.html#a1">noise::module::Min</a>, <a class="el" href="classnoise_1_1module_1_1Max.html#a1">noise::module::Max</a>, <a class="el" href="classnoise_1_1module_1_1Invert.html#a1">noise::module::Invert</a>, <a class="el" href="classnoise_1_1module_1_1Exponent.html#a2">noise::module::Exponent</a>, <a class="el" href="classnoise_1_1module_1_1Displace.html#a1">noise::module::Displace</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a2">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a6">noise::module::Curve</a>, <a class="el" href="classnoise_1_1module_1_1Const.html#a2">noise::module::Const</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a2">noise::module::Clamp</a>, <a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a1">noise::module::Checkerboard</a>, <a class="el" href="classnoise_1_1module_1_1Cache.html#a1">noise::module::Cache</a>, <a class="el" href="classnoise_1_1module_1_1Blend.html#a2">noise::module::Blend</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a7">noise::module::Billow</a>, <a class="el" href="classnoise_1_1module_1_1Add.html#a1">noise::module::Add</a>, <a class="el" href="classnoise_1_1module_1_1Abs.html#a1">noise::module::Abs</a><li>GetUpperBound()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a5">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a3">noise::module::Clamp</a><li>GetValue()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a7">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a6">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a2">noise::module::TranslatePoint</a>, <a class="el" href="classnoise_1_1module_1_1Terrace.html#a9">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#a3">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1Select.html#a6">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a2">noise::module::ScalePoint</a>, <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a4">noise::module::ScaleBias</a>, <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a2">noise::module::RotatePoint</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a7">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Power.html#a2">noise::module::Power</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a8">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Multiply.html#a2">noise::module::Multiply</a>, <a class="el" href="classnoise_1_1module_1_1Module.html#a4">noise::module::Module</a>, <a class="el" href="classnoise_1_1module_1_1Min.html#a2">noise::module::Min</a>, <a class="el" href="classnoise_1_1module_1_1Max.html#a2">noise::module::Max</a>, <a class="el" href="classnoise_1_1module_1_1Invert.html#a2">noise::module::Invert</a>, <a class="el" href="classnoise_1_1module_1_1Exponent.html#a3">noise::module::Exponent</a>, <a class="el" href="classnoise_1_1module_1_1Displace.html#a2">noise::module::Displace</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a3">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#a7">noise::module::Curve</a>, <a class="el" href="classnoise_1_1module_1_1Const.html#a3">noise::module::Const</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a4">noise::module::Clamp</a>, <a class="el" href="classnoise_1_1module_1_1Checkerboard.html#a2">noise::module::Checkerboard</a>, <a class="el" href="classnoise_1_1module_1_1Cache.html#a2">noise::module::Cache</a>, <a class="el" href="classnoise_1_1module_1_1Blend.html#a3">noise::module::Blend</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a8">noise::module::Billow</a>, <a class="el" href="classnoise_1_1module_1_1Add.html#a2">noise::module::Add</a>, <a class="el" href="classnoise_1_1module_1_1Abs.html#a2">noise::module::Abs</a>, <a class="el" href="classnoise_1_1model_1_1Sphere.html#a3">noise::model::Sphere</a>, <a class="el" href="classnoise_1_1model_1_1Plane.html#a3">noise::model::Plane</a>, <a class="el" href="classnoise_1_1model_1_1Line.html#a4">noise::model::Line</a>, <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a3">noise::model::Cylinder</a><li>GetXAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a3">noise::module::RotatePoint</a><li>GetXDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a3">noise::module::Displace</a><li>GetXScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a3">noise::module::ScalePoint</a><li>GetXTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a3">noise::module::TranslatePoint</a><li>GetYAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a4">noise::module::RotatePoint</a><li>GetYDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a4">noise::module::Displace</a><li>GetYScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a4">noise::module::ScalePoint</a><li>GetYTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a4">noise::module::TranslatePoint</a><li>GetZAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a5">noise::module::RotatePoint</a><li>GetZDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a5">noise::module::Displace</a><li>GetZScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a5">noise::module::ScalePoint</a><li>GetZTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a5">noise::module::TranslatePoint</a></ul>+<h3><a class="anchor" name="index_i">- i -</a></h3><ul>+<li>InsertAtPos()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#b1">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#b1">noise::module::Curve</a><li>Invert()+: <a class="el" href="classnoise_1_1module_1_1Invert.html#a0">noise::module::Invert</a><li>InvertTerraces()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a7">noise::module::Terrace</a><li>IsDistanceEnabled()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a6">noise::module::Voronoi</a><li>IsTerracesInverted()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a8">noise::module::Terrace</a></ul>+<h3><a class="anchor" name="index_l">- l -</a></h3><ul>+<li>Line()+: <a class="el" href="classnoise_1_1model_1_1Line.html#a1">noise::model::Line</a></ul>+<h3><a class="anchor" name="index_m">- m -</a></h3><ul>+<li>MakeControlPoints()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a10">noise::module::Terrace</a><li>Max()+: <a class="el" href="classnoise_1_1module_1_1Max.html#a0">noise::module::Max</a><li>Min()+: <a class="el" href="classnoise_1_1module_1_1Min.html#a0">noise::module::Min</a><li>Module()+: <a class="el" href="classnoise_1_1module_1_1Module.html#a0">noise::module::Module</a><li>Multiply()+: <a class="el" href="classnoise_1_1module_1_1Multiply.html#a0">noise::module::Multiply</a></ul>+<h3><a class="anchor" name="index_p">- p -</a></h3><ul>+<li>Perlin()+: <a class="el" href="classnoise_1_1module_1_1Perlin.html#a0">noise::module::Perlin</a><li>Plane()+: <a class="el" href="classnoise_1_1model_1_1Plane.html#a1">noise::model::Plane</a><li>Power()+: <a class="el" href="classnoise_1_1module_1_1Power.html#a0">noise::module::Power</a></ul>+<h3><a class="anchor" name="index_r">- r -</a></h3><ul>+<li>RidgedMulti()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a0">noise::module::RidgedMulti</a><li>RotatePoint()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a0">noise::module::RotatePoint</a></ul>+<h3><a class="anchor" name="index_s">- s -</a></h3><ul>+<li>ScaleBias()+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a0">noise::module::ScaleBias</a><li>ScalePoint()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a0">noise::module::ScalePoint</a><li>Select()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a0">noise::module::Select</a><li>SetAngles()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a6">noise::module::RotatePoint</a><li>SetAttenuate()+: <a class="el" href="classnoise_1_1model_1_1Line.html#a5">noise::model::Line</a><li>SetBias()+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a5">noise::module::ScaleBias</a><li>SetBounds()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a7">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#a5">noise::module::Clamp</a><li>SetConstValue()+: <a class="el" href="classnoise_1_1module_1_1Const.html#a4">noise::module::Const</a><li>SetControlModule()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a8">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Blend.html#a4">noise::module::Blend</a><li>SetDisplacement()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a8">noise::module::Voronoi</a><li>SetDisplaceModules()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a6">noise::module::Displace</a><li>SetEdgeFalloff()+: <a class="el" href="classnoise_1_1module_1_1Select.html#a9">noise::module::Select</a><li>SetEndPoint()+: <a class="el" href="classnoise_1_1model_1_1Line.html#a6">noise::model::Line</a><li>SetExponent()+: <a class="el" href="classnoise_1_1module_1_1Exponent.html#a4">noise::module::Exponent</a><li>SetFrequency()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a9">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a7">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#a4">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a8">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a9">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#a4">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a9">noise::module::Billow</a><li>SetLacunarity()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a9">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a10">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a10">noise::module::Billow</a><li>SetModule()+: <a class="el" href="classnoise_1_1model_1_1Sphere.html#a4">noise::model::Sphere</a>, <a class="el" href="classnoise_1_1model_1_1Plane.html#a4">noise::model::Plane</a>, <a class="el" href="classnoise_1_1model_1_1Line.html#a7">noise::model::Line</a>, <a class="el" href="classnoise_1_1model_1_1Cylinder.html#a4">noise::model::Cylinder</a><li>SetNoiseQuality()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a10">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a11">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a11">noise::module::Billow</a><li>SetOctaveCount()+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a11">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a12">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a12">noise::module::Billow</a><li>SetPersistence()+: <a class="el" href="classnoise_1_1module_1_1Perlin.html#a13">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a13">noise::module::Billow</a><li>SetPower()+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a8">noise::module::Turbulence</a><li>SetRoughness()+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a9">noise::module::Turbulence</a><li>SetScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a7">noise::module::ScalePoint</a>, <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#a6">noise::module::ScaleBias</a><li>SetSeed()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a10">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a10">noise::module::Turbulence</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#a12">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#a14">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#a14">noise::module::Billow</a><li>SetSourceModule()+: <a class="el" href="classnoise_1_1module_1_1Module.html#a5">noise::module::Module</a>, <a class="el" href="classnoise_1_1module_1_1Cache.html#a3">noise::module::Cache</a><li>SetStartPoint()+: <a class="el" href="classnoise_1_1model_1_1Line.html#a8">noise::model::Line</a><li>SetTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a7">noise::module::TranslatePoint</a><li>SetXAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a7">noise::module::RotatePoint</a><li>SetXDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a7">noise::module::Displace</a><li>SetXScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a8">noise::module::ScalePoint</a><li>SetXTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a8">noise::module::TranslatePoint</a><li>SetYAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a8">noise::module::RotatePoint</a><li>SetYDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a8">noise::module::Displace</a><li>SetYScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a9">noise::module::ScalePoint</a><li>SetYTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a9">noise::module::TranslatePoint</a><li>SetZAngle()+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#a9">noise::module::RotatePoint</a><li>SetZDisplaceModule()+: <a class="el" href="classnoise_1_1module_1_1Displace.html#a9">noise::module::Displace</a><li>SetZScale()+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#a10">noise::module::ScalePoint</a><li>SetZTranslation()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a10">noise::module::TranslatePoint</a><li>Sphere()+: <a class="el" href="classnoise_1_1model_1_1Sphere.html#a1">noise::model::Sphere</a><li>Spheres()+: <a class="el" href="classnoise_1_1module_1_1Spheres.html#a0">noise::module::Spheres</a></ul>+<h3><a class="anchor" name="index_t">- t -</a></h3><ul>+<li>Terrace()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a0">noise::module::Terrace</a><li>TranslatePoint()+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#a0">noise::module::TranslatePoint</a><li>Turbulence()+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#a0">noise::module::Turbulence</a></ul>+<h3><a class="anchor" name="index_v">- v -</a></h3><ul>+<li>Voronoi()+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#a0">noise::module::Voronoi</a></ul>+<h3><a class="anchor" name="index_~">- ~ -</a></h3><ul>+<li>~Curve()+: <a class="el" href="classnoise_1_1module_1_1Curve.html#a1">noise::module::Curve</a><li>~Module()+: <a class="el" href="classnoise_1_1module_1_1Module.html#a1">noise::module::Module</a><li>~Terrace()+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#a1">noise::module::Terrace</a></ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,181 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindexHL" href="functions.html">Class Members</a></div>+<div class="qindex"><a class="qindex" href="functions.html">All</a> | <a class="qindex" href="functions_func.html">Functions</a> | <a class="qindexHL" href="functions_vars.html">Variables</a></div>+<div class="qindex"><a class="qindex" href="#index_i">i</a> | <a class="qindex" href="#index_m">m</a> | <a class="qindex" href="#index_o">o</a></div>++<p>++<p>+<h3><a class="anchor" name="index_i">- i -</a></h3><ul>+<li>inputValue+: <a class="el" href="structnoise_1_1module_1_1ControlPoint.html#o0">noise::module::ControlPoint</a></ul>+<h3><a class="anchor" name="index_m">- m -</a></h3><ul>+<li>m_bias+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#p0">noise::module::ScaleBias</a><li>m_cachedValue+: <a class="el" href="classnoise_1_1module_1_1Cache.html#p0">noise::module::Cache</a><li>m_constValue+: <a class="el" href="classnoise_1_1module_1_1Const.html#p0">noise::module::Const</a><li>m_controlPointCount+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#p0">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#p0">noise::module::Curve</a><li>m_displacement+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#p0">noise::module::Voronoi</a><li>m_edgeFalloff+: <a class="el" href="classnoise_1_1module_1_1Select.html#p0">noise::module::Select</a><li>m_enableDistance+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#p1">noise::module::Voronoi</a><li>m_exponent+: <a class="el" href="classnoise_1_1module_1_1Exponent.html#p0">noise::module::Exponent</a><li>m_frequency+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#p2">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1Spheres.html#p0">noise::module::Spheres</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p0">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#p0">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Cylinders.html#p0">noise::module::Cylinders</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p0">noise::module::Billow</a><li>m_invertTerraces+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#p1">noise::module::Terrace</a><li>m_isCached+: <a class="el" href="classnoise_1_1module_1_1Cache.html#p1">noise::module::Cache</a><li>m_lacunarity+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p1">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#p1">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p1">noise::module::Billow</a><li>m_lowerBound+: <a class="el" href="classnoise_1_1module_1_1Select.html#p1">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#p0">noise::module::Clamp</a><li>m_noiseQuality+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p2">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#p2">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p2">noise::module::Billow</a><li>m_octaveCount+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p3">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#p3">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p3">noise::module::Billow</a><li>m_pControlPoints+: <a class="el" href="classnoise_1_1module_1_1Terrace.html#p2">noise::module::Terrace</a>, <a class="el" href="classnoise_1_1module_1_1Curve.html#p1">noise::module::Curve</a><li>m_persistence+: <a class="el" href="classnoise_1_1module_1_1Perlin.html#p4">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p4">noise::module::Billow</a><li>m_power+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#p0">noise::module::Turbulence</a><li>m_pSourceModule+: <a class="el" href="classnoise_1_1module_1_1Module.html#p0">noise::module::Module</a><li>m_pSpectralWeights+: <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p4">noise::module::RidgedMulti</a><li>m_scale+: <a class="el" href="classnoise_1_1module_1_1ScaleBias.html#p1">noise::module::ScaleBias</a><li>m_seed+: <a class="el" href="classnoise_1_1module_1_1Voronoi.html#p3">noise::module::Voronoi</a>, <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html#p5">noise::module::RidgedMulti</a>, <a class="el" href="classnoise_1_1module_1_1Perlin.html#p5">noise::module::Perlin</a>, <a class="el" href="classnoise_1_1module_1_1Billow.html#p5">noise::module::Billow</a><li>m_upperBound+: <a class="el" href="classnoise_1_1module_1_1Select.html#p2">noise::module::Select</a>, <a class="el" href="classnoise_1_1module_1_1Clamp.html#p1">noise::module::Clamp</a><li>m_x1Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p0">noise::module::RotatePoint</a><li>m_x2Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p1">noise::module::RotatePoint</a><li>m_x3Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p2">noise::module::RotatePoint</a><li>m_xAngle+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p3">noise::module::RotatePoint</a><li>m_xCache+: <a class="el" href="classnoise_1_1module_1_1Cache.html#p2">noise::module::Cache</a><li>m_xDistortModule+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#p1">noise::module::Turbulence</a><li>m_xScale+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p0">noise::module::ScalePoint</a><li>m_xTranslation+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p0">noise::module::TranslatePoint</a><li>m_y1Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p4">noise::module::RotatePoint</a><li>m_y2Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p5">noise::module::RotatePoint</a><li>m_y3Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p6">noise::module::RotatePoint</a><li>m_yAngle+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p7">noise::module::RotatePoint</a><li>m_yCache+: <a class="el" href="classnoise_1_1module_1_1Cache.html#p3">noise::module::Cache</a><li>m_yDistortModule+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#p2">noise::module::Turbulence</a><li>m_yScale+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p1">noise::module::ScalePoint</a><li>m_yTranslation+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p1">noise::module::TranslatePoint</a><li>m_z1Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p8">noise::module::RotatePoint</a><li>m_z2Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p9">noise::module::RotatePoint</a><li>m_z3Matrix+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p10">noise::module::RotatePoint</a><li>m_zAngle+: <a class="el" href="classnoise_1_1module_1_1RotatePoint.html#p11">noise::module::RotatePoint</a><li>m_zCache+: <a class="el" href="classnoise_1_1module_1_1Cache.html#p4">noise::module::Cache</a><li>m_zDistortModule+: <a class="el" href="classnoise_1_1module_1_1Turbulence.html#p3">noise::module::Turbulence</a><li>m_zScale+: <a class="el" href="classnoise_1_1module_1_1ScalePoint.html#p2">noise::module::ScalePoint</a><li>m_zTranslation+: <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html#p2">noise::module::TranslatePoint</a></ul>+<h3><a class="anchor" name="index_o">- o -</a></h3><ul>+<li>outputValue+: <a class="el" href="structnoise_1_1module_1_1ControlPoint.html#o1">noise::module::ControlPoint</a></ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,144 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>Combiner Modules<br>+<small>+[<a class="el" href="group__modules.html">Noise Modules</a>]</small>+</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Add.html">noise::module::Add</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs the sum of the two output values from two source modules. <a href="classnoise_1_1module_1_1Add.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Max.html">noise::module::Max</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs the larger of the two output values from two source modules. <a href="classnoise_1_1module_1_1Max.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Min.html">noise::module::Min</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs the smaller of the two output values from two source modules. <a href="classnoise_1_1module_1_1Min.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Multiply.html">noise::module::Multiply</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs the product of the two output values from two source modules. <a href="classnoise_1_1module_1_1Multiply.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Power.html">noise::module::Power</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that raises the output value from a first source module to the power of the output value from a second source module. <a href="classnoise_1_1module_1_1Power.html#_details">More...</a><br></td></tr>+</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,258 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>Generator Modules<br>+<small>+[<a class="el" href="group__modules.html">Noise Modules</a>]</small>+</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs three-dimensional "billowy" noise. <a href="classnoise_1_1module_1_1Billow.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Checkerboard.html">noise::module::Checkerboard</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs a checkerboard pattern. <a href="classnoise_1_1module_1_1Checkerboard.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs a constant value. <a href="classnoise_1_1module_1_1Const.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cylinders.html">noise::module::Cylinders</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs concentric cylinders. <a href="classnoise_1_1module_1_1Cylinders.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs 3-dimensional <a class="el" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> noise. <a href="classnoise_1_1module_1_1Perlin.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs 3-dimensional ridged-multifractal noise. <a href="classnoise_1_1module_1_1RidgedMulti.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Spheres.html">noise::module::Spheres</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs concentric spheres. <a href="classnoise_1_1module_1_1Spheres.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs <a class="el" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> cells. <a href="classnoise_1_1module_1_1Voronoi.html#_details">More...</a><br></td></tr>+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="Generatormodules::DEFAULT_BILLOW_FREQUENCY"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga0">noise::module::DEFAULT_BILLOW_FREQUENCY</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default frequency for the <a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga1" doxytag="Generatormodules::DEFAULT_BILLOW_LACUNARITY"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga1">noise::module::DEFAULT_BILLOW_LACUNARITY</a> = 2.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default lacunarity for the the <a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga2" doxytag="Generatormodules::DEFAULT_BILLOW_OCTAVE_COUNT"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga2">noise::module::DEFAULT_BILLOW_OCTAVE_COUNT</a> = 6</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default number of octaves for the the <a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga3" doxytag="Generatormodules::DEFAULT_BILLOW_PERSISTENCE"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga3">noise::module::DEFAULT_BILLOW_PERSISTENCE</a> = 0.5</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default persistence value for the the <a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga4" doxytag="Generatormodules::DEFAULT_BILLOW_QUALITY"></a>+const <a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga4">noise::module::DEFAULT_BILLOW_QUALITY</a> = QUALITY_STD</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default noise quality for the the <a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga5" doxytag="Generatormodules::DEFAULT_BILLOW_SEED"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga5">noise::module::DEFAULT_BILLOW_SEED</a> = 0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default noise seed for the the <a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6" doxytag="Generatormodules::BILLOW_MAX_OCTAVE"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga6">noise::module::BILLOW_MAX_OCTAVE</a> = 30</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum number of octaves for the the <a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga7" doxytag="Generatormodules::DEFAULT_CONST_VALUE"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga7">noise::module::DEFAULT_CONST_VALUE</a> = 0.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default constant value for the <a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga8" doxytag="Generatormodules::DEFAULT_CYLINDERS_FREQUENCY"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga8">noise::module::DEFAULT_CYLINDERS_FREQUENCY</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default frequency value for the <a class="el" href="classnoise_1_1module_1_1Cylinders.html">noise::module::Cylinders</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga9" doxytag="Generatormodules::DEFAULT_PERLIN_FREQUENCY"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga9">noise::module::DEFAULT_PERLIN_FREQUENCY</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default frequency for the <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga10" doxytag="Generatormodules::DEFAULT_PERLIN_LACUNARITY"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga10">noise::module::DEFAULT_PERLIN_LACUNARITY</a> = 2.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default lacunarity for the <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga11" doxytag="Generatormodules::DEFAULT_PERLIN_OCTAVE_COUNT"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga11">noise::module::DEFAULT_PERLIN_OCTAVE_COUNT</a> = 6</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default number of octaves for the <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga12" doxytag="Generatormodules::DEFAULT_PERLIN_PERSISTENCE"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga12">noise::module::DEFAULT_PERLIN_PERSISTENCE</a> = 0.5</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default persistence value for the <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga13" doxytag="Generatormodules::DEFAULT_PERLIN_QUALITY"></a>+const <a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga13">noise::module::DEFAULT_PERLIN_QUALITY</a> = QUALITY_STD</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default noise quality for the <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga14" doxytag="Generatormodules::DEFAULT_PERLIN_SEED"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga14">noise::module::DEFAULT_PERLIN_SEED</a> = 0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default noise seed for the <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga15" doxytag="Generatormodules::PERLIN_MAX_OCTAVE"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga15">noise::module::PERLIN_MAX_OCTAVE</a> = 30</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum number of octaves for the <a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga16" doxytag="Generatormodules::DEFAULT_RIDGED_FREQUENCY"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga16">noise::module::DEFAULT_RIDGED_FREQUENCY</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default frequency for the <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga17" doxytag="Generatormodules::DEFAULT_RIDGED_LACUNARITY"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga17">noise::module::DEFAULT_RIDGED_LACUNARITY</a> = 2.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default lacunarity for the <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga18" doxytag="Generatormodules::DEFAULT_RIDGED_OCTAVE_COUNT"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga18">noise::module::DEFAULT_RIDGED_OCTAVE_COUNT</a> = 6</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default number of octaves for the <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga19" doxytag="Generatormodules::DEFAULT_RIDGED_QUALITY"></a>+const <a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga19">noise::module::DEFAULT_RIDGED_QUALITY</a> = QUALITY_STD</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default noise quality for the <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga20" doxytag="Generatormodules::DEFAULT_RIDGED_SEED"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga20">noise::module::DEFAULT_RIDGED_SEED</a> = 0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default noise seed for the <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga21" doxytag="Generatormodules::RIDGED_MAX_OCTAVE"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga21">noise::module::RIDGED_MAX_OCTAVE</a> = 30</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum number of octaves for the <a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga22" doxytag="Generatormodules::DEFAULT_SPHERES_FREQUENCY"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga22">noise::module::DEFAULT_SPHERES_FREQUENCY</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default frequency value for the <a class="el" href="classnoise_1_1module_1_1Spheres.html">noise::module::Spheres</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga23" doxytag="Generatormodules::DEFAULT_VORONOI_DISPLACEMENT"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga23">noise::module::DEFAULT_VORONOI_DISPLACEMENT</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default displacement to apply to each cell for the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga24" doxytag="Generatormodules::DEFAULT_VORONOI_FREQUENCY"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga24">noise::module::DEFAULT_VORONOI_FREQUENCY</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default frequency of the seed points for the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga25" doxytag="Generatormodules::DEFAULT_VORONOI_SEED"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html#ga25">noise::module::DEFAULT_VORONOI_SEED</a> = 0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default seed of the noise function for the <a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a> noise module. <br></td></tr>+</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,1093 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>libnoise</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Modules</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">group </td><td class="memItemRight" valign="bottom"><a class="el" href="group__models.html">Models</a></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">group </td><td class="memItemRight" valign="bottom"><a class="el" href="group__modules.html">Noise Modules</a></td></tr>++<tr><td colspan="2"><br><h2>Classes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1Exception.html">noise::Exception</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Abstract base class for libnoise exceptions. <a href="classnoise_1_1Exception.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionInvalidParam.html">noise::ExceptionInvalidParam</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Invalid parameter exception. <a href="classnoise_1_1ExceptionInvalidParam.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionNoModule.html">noise::ExceptionNoModule</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">No module exception. <a href="classnoise_1_1ExceptionNoModule.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionOutOfMemory.html">noise::ExceptionOutOfMemory</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Out of memory exception. <a href="classnoise_1_1ExceptionOutOfMemory.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionUnknown.html">noise::ExceptionUnknown</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Unknown exception. <a href="classnoise_1_1ExceptionUnknown.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structnoise_1_1module_1_1ControlPoint.html">noise::module::ControlPoint</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">This structure defines a control point. <a href="structnoise_1_1module_1_1ControlPoint.html#_details">More...</a><br></td></tr>+<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="libnoise::uint"></a>+typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga0">noise::uint</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Unsigned integer type. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga1" doxytag="libnoise::uint32"></a>+typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga1">noise::uint32</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">32-bit unsigned integer type. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga2" doxytag="libnoise::uint16"></a>+typedef unsigned short </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga2">noise::uint16</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">16-bit unsigned integer type. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga3" doxytag="libnoise::uint8"></a>+typedef unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga3">noise::uint8</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">8-bit unsigned integer type. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga4" doxytag="libnoise::int32"></a>+typedef int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga4">noise::int32</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">32-bit signed integer type. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga5" doxytag="libnoise::int16"></a>+typedef short </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga5">noise::int16</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">16-bit signed integer type. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6" doxytag="libnoise::int8"></a>+typedef char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga6">noise::int8</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">8-bit signed integer type. <br></td></tr>+<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> { <a class="el" href="group__libnoise.html#gga26a12">noise::QUALITY_FAST</a> = 0, +<a class="el" href="group__libnoise.html#gga26a13">noise::QUALITY_STD</a> = 1, +<a class="el" href="group__libnoise.html#gga26a14">noise::QUALITY_BEST</a> = 2+ }</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Enumerates the noise quality. <a href="#ga26">More...</a><br></td></tr>+<tr><td colspan="2"><br><h2>Functions</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga12">noise::CubicInterp</a> (double n0, double n1, double n2, double n3, double a)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs cubic interpolation between two values bound between two other values. <a href="#ga12"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga13">noise::LinearInterp</a> (double n0, double n1, double a)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs linear interpolation between two values. <a href="#ga13"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga14">noise::SCurve3</a> (double a)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Maps a value onto a cubic S-curve. <a href="#ga14"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga15">noise::SCurve5</a> (double a)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Maps a value onto a quintic S-curve. <a href="#ga15"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga16">noise::LatLonToXYZ</a> (double lat, double lon, double &x, double &y, double &z)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Converts latitude/longitude coordinates on a unit sphere into 3D Cartesian coordinates. <a href="#ga16"></a><br></td></tr>+<tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr>+<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga17">noise::GetMax</a> (const T &a, const T &b)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the maximum of two values. <a href="#ga17"></a><br></td></tr>+<tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr>+<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga18">noise::GetMin</a> (const T &a, const T &b)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the minimum of two values. <a href="#ga18"></a><br></td></tr>+<tr><td class="memTemplParams" nowrap colspan="2">template<class T> </td></tr>+<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga19">noise::SwapValues</a> (T &a, T &b)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Swaps two values. <a href="#ga19"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga20">noise::GradientCoherentNoise3D</a> (double x, double y, double z, int seed=0, <a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> noiseQuality=QUALITY_STD)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates a gradient-coherent-noise value from the coordinates of a three-dimensional input value. <a href="#ga20"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga21">noise::GradientNoise3D</a> (double fx, double fy, double fz, int ix, int iy, int iz, int seed=0)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates a gradient-noise value from the coordinates of a three-dimensional input value and the integer coordinates of a nearby three-dimensional value. <a href="#ga21"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga22">noise::IntValueNoise3D</a> (int x, int y, int z, int seed=0)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates an integer-noise value from the coordinates of a three-dimensional input value. <a href="#ga22"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga23">noise::MakeInt32Range</a> (double n)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Modifies a floating-point value so that it can be stored in a <a class="el" href="group__libnoise.html#ga4">noise::int32</a> variable. <a href="#ga23"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga24">noise::ValueCoherentNoise3D</a> (double x, double y, double z, int seed=0, <a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> noiseQuality=QUALITY_STD)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates a value-coherent-noise value from the coordinates of a three-dimensional input value. <a href="#ga24"></a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga25">noise::ValueNoise3D</a> (int x, int y, int z, int seed=0)</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates a value-noise value from the coordinates of a three-dimensional input value. <a href="#ga25"></a><br></td></tr>+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga7" doxytag="libnoise::PI"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga7">noise::PI</a> = 3.1415926535897932385</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Pi. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga8" doxytag="libnoise::SQRT_2"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga8">noise::SQRT_2</a> = 1.4142135623730950488</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Square root of 2. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga9" doxytag="libnoise::SQRT_3"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga9">noise::SQRT_3</a> = 1.7320508075688772935</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Square root of 3. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga10" doxytag="libnoise::DEG_TO_RAD"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga10">noise::DEG_TO_RAD</a> = <a class="el" href="group__libnoise.html#ga7">PI</a> / 180.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Converts an angle from degrees to radians. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga11" doxytag="libnoise::RAD_TO_DEG"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga11">noise::RAD_TO_DEG</a> = 1.0 / <a class="el" href="group__libnoise.html#ga10">DEG_TO_RAD</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Converts an angle from radians to degrees. <br></td></tr>+</table>+<hr><h2>Enumeration Type Documentation</h2>+<a class="anchor" name="ga26" doxytag="noise::NoiseQuality"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">enum <a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> </td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Enumerates the noise quality. +<p>+<dl compact><dt><b>Enumeration values: </b></dt><dd>+<table border="0" cellspacing="2" cellpadding="0">+<tr><td valign="top"><em><a class="anchor" name="gga26a12" doxytag="QUALITY_FAST"></a>QUALITY_FAST</em> </td><td>+Generates coherent noise quickly. +<p>+When a coherent-noise function with this quality setting is used to generate a bump-map image, there are noticeable "creasing" artifacts in the resulting image. This is because the derivative of that function is discontinuous at integer boundaries. </td></tr>+<tr><td valign="top"><em><a class="anchor" name="gga26a13" doxytag="QUALITY_STD"></a>QUALITY_STD</em> </td><td>+Generates standard-quality coherent noise. +<p>+When a coherent-noise function with this quality setting is used to generate a bump-map image, there are some minor "creasing" artifacts in the resulting image. This is because the second derivative of that function is discontinuous at integer boundaries. </td></tr>+<tr><td valign="top"><em><a class="anchor" name="gga26a14" doxytag="QUALITY_BEST"></a>QUALITY_BEST</em> </td><td>+Generates the best-quality coherent noise. +<p>+When a coherent-noise function with this quality setting is used to generate a bump-map image, there are no "creasing" artifacts in the resulting image. This is because the first and second derivatives of that function are continuous at integer boundaries. </td></tr>+</table>+</dl>+ </td>+ </tr>+</table>+<hr><h2>Function Documentation</h2>+<a class="anchor" name="ga12" doxytag="noise::CubicInterp"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double CubicInterp </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>n0</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>n1</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>n2</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>n3</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>a</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Performs cubic interpolation between two values bound between two other values. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>n0</em> </td><td>The value before the first value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>n1</em> </td><td>The first value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>n2</em> </td><td>The second value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>n3</em> </td><td>The value after the second value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>The alpha value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The interpolated value.</dd></dl>+The alpha value should range from 0.0 to 1.0. If the alpha value is 0.0, this function returns <em>n1</em>. If the alpha value is 1.0, this function returns <em>n2</em>. </td>+ </tr>+</table>+<a class="anchor" name="ga17" doxytag="noise::GetMax"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" colspan="4">+template<class T> </td>+ </tr>+ <tr>+ <td class="md" nowrap valign="top">T GetMax </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const T & </td>+ <td class="mdname" nowrap> <em>a</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>const T & </td>+ <td class="mdname" nowrap> <em>b</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the maximum of two values. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>The first value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>b</em> </td><td>The second value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The maximum of the two values. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="ga18" doxytag="noise::GetMin"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" colspan="4">+template<class T> </td>+ </tr>+ <tr>+ <td class="md" nowrap valign="top">T GetMin </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">const T & </td>+ <td class="mdname" nowrap> <em>a</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>const T & </td>+ <td class="mdname" nowrap> <em>b</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Returns the minimum of two values. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>The first value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>b</em> </td><td>The second value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The minimum of the two values. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="ga20" doxytag="noise::GradientCoherentNoise3D"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::GradientCoherentNoise3D </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>seed</em> = <code>0</code>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap><a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> </td>+ <td class="mdname" nowrap> <em>noiseQuality</em> = <code>QUALITY_STD</code></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates a gradient-coherent-noise value from the coordinates of a three-dimensional input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>The random number seed. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>noiseQuality</em> </td><td>The quality of the coherent-noise.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The generated gradient-coherent-noise value.</dd></dl>+The return value ranges from -1.0 to +1.0.<p>+For an explanation of the difference between <em>gradient</em> noise and <em>value</em> noise, see the comments for the <a class="el" href="group__libnoise.html#ga21">GradientNoise3D()</a> function. </td>+ </tr>+</table>+<a class="anchor" name="ga21" doxytag="noise::GradientNoise3D"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::GradientNoise3D </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>fx</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>fy</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>fz</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>ix</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>iy</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>iz</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>seed</em> = <code>0</code></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates a gradient-noise value from the coordinates of a three-dimensional input value and the integer coordinates of a nearby three-dimensional value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>fx</em> </td><td>The floating-point <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>fy</em> </td><td>The floating-point <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>fz</em> </td><td>The floating-point <em>z</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>ix</em> </td><td>The integer <em>x</em> coordinate of a nearby value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>iy</em> </td><td>The integer <em>y</em> coordinate of a nearby value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>iz</em> </td><td>The integer <em>z</em> coordinate of a nearby value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>The random number seed.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The generated gradient-noise value.</dd></dl>+<dl compact><dt><b>Precondition:</b></dt><dd>The difference between <em>fx</em> and <em>ix</em> must be less than or equal to one.<p>+The difference between <em>fy</em> and <em>iy</em> must be less than or equal to one.<p>+The difference between <em>fz</em> and <em>iz</em> must be less than or equal to one.</dd></dl>+A <em>gradient</em>-noise function generates better-quality noise than a <em>value</em>-noise function. Most noise modules use gradient noise for this reason, although it takes much longer to calculate.<p>+The return value ranges from -1.0 to +1.0.<p>+This function generates a gradient-noise value by performing the following steps:<ul>+<li>It first calculates a random normalized vector based on the nearby integer value passed to this function.</li><li>It then calculates a new value by adding this vector to the nearby integer value passed to this function.</li><li>It then calculates the dot product of the above-generated value and the floating-point input value passed to this function.</li></ul>+<p>+A noise function differs from a random-number generator because it always returns the same output value if the same input value is passed to it. </td>+ </tr>+</table>+<a class="anchor" name="ga22" doxytag="noise::IntValueNoise3D"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">int noise::IntValueNoise3D </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>z</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>seed</em> = <code>0</code></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates an integer-noise value from the coordinates of a three-dimensional input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The integer <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The integer <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The integer <em>z</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>A random number seed.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The generated integer-noise value.</dd></dl>+The return value ranges from 0 to 2147483647.<p>+A noise function differs from a random-number generator because it always returns the same output value if the same input value is passed to it. </td>+ </tr>+</table>+<a class="anchor" name="ga16" doxytag="noise::LatLonToXYZ"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">void noise::LatLonToXYZ </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>lat</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>lon</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double & </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double & </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double & </td>+ <td class="mdname" nowrap> <em>z</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Converts latitude/longitude coordinates on a unit sphere into 3D Cartesian coordinates. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>lat</em> </td><td>The latitude, in degrees. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>lon</em> </td><td>The longitude, in degrees. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>On exit, this parameter contains the <em>x</em> coordinate. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>On exit, this parameter contains the <em>y</em> coordinate. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>On exit, this parameter contains the <em>z</em> coordinate.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Precondition:</b></dt><dd>lat must range from <b>-90</b> to <b>+90</b>. <p>+lon must range from <b>-180</b> to <b>+180</b>. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="ga13" doxytag="noise::LinearInterp"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double LinearInterp </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>n0</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>n1</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>a</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Performs linear interpolation between two values. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>n0</em> </td><td>The first value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>n1</em> </td><td>The second value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>The alpha value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The interpolated value.</dd></dl>+The alpha value should range from 0.0 to 1.0. If the alpha value is 0.0, this function returns <em>n0</em>. If the alpha value is 1.0, this function returns <em>n1</em>. </td>+ </tr>+</table>+<a class="anchor" name="ga23" doxytag="noise::MakeInt32Range"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double MakeInt32Range </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>n</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Modifies a floating-point value so that it can be stored in a <a class="el" href="group__libnoise.html#ga4">noise::int32</a> variable. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>A floating-point number.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The modified floating-point number.</dd></dl>+This function does not modify <em>n</em>.<p>+In libnoise, the noise-generating algorithms are all integer-based; they use variables of type <a class="el" href="group__libnoise.html#ga4">noise::int32</a>. Before calling a noise function, pass the <em>x</em>, <em>y</em>, and <em>z</em> coordinates to this function to ensure that these coordinates can be cast to a <a class="el" href="group__libnoise.html#ga4">noise::int32</a> value.<p>+Although you could do a straight cast from double to <a class="el" href="group__libnoise.html#ga4">noise::int32</a>, the resulting value may differ between platforms. By using this function, you ensure that the resulting value is identical between platforms. </td>+ </tr>+</table>+<a class="anchor" name="ga14" doxytag="noise::SCurve3"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double SCurve3 </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>a</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Maps a value onto a cubic S-curve. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>The value to map onto a cubic S-curve.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The mapped value.</dd></dl>+<em>a</em> should range from 0.0 to 1.0.<p>+The derivitive of a cubic S-curve is zero at <em>a</em> = 0.0 and <em>a</em> = 1.0 </td>+ </tr>+</table>+<a class="anchor" name="ga15" doxytag="noise::SCurve5"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double SCurve5 </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname1" valign="top" nowrap> <em>a</em> </td>+ <td class="md" valign="top"> ) </td>+ <td class="md" nowrap><code> [inline]</code></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Maps a value onto a quintic S-curve. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>The value to map onto a quintic S-curve.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The mapped value.</dd></dl>+<em>a</em> should range from 0.0 to 1.0.<p>+The first derivitive of a quintic S-curve is zero at <em>a</em> = 0.0 and <em>a</em> = 1.0<p>+The second derivitive of a quintic S-curve is zero at <em>a</em> = 0.0 and <em>a</em> = 1.0 </td>+ </tr>+</table>+<a class="anchor" name="ga19" doxytag="noise::SwapValues"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" colspan="4">+template<class T> </td>+ </tr>+ <tr>+ <td class="md" nowrap valign="top">void SwapValues </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">T & </td>+ <td class="mdname" nowrap> <em>a</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>T & </td>+ <td class="mdname" nowrap> <em>b</em></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Swaps two values. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>A variable containing the first value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>b</em> </td><td>A variable containing the second value.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Postcondition:</b></dt><dd>The values within the the two variables are swapped. </dd></dl>+ </td>+ </tr>+</table>+<a class="anchor" name="ga24" doxytag="noise::ValueCoherentNoise3D"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::ValueCoherentNoise3D </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">double </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>double </td>+ <td class="mdname" nowrap> <em>z</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>seed</em> = <code>0</code>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap><a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> </td>+ <td class="mdname" nowrap> <em>noiseQuality</em> = <code>QUALITY_STD</code></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates a value-coherent-noise value from the coordinates of a three-dimensional input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>The random number seed. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>noiseQuality</em> </td><td>The quality of the coherent-noise.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The generated value-coherent-noise value.</dd></dl>+The return value ranges from -1.0 to +1.0.<p>+For an explanation of the difference between <em>gradient</em> noise and <em>value</em> noise, see the comments for the <a class="el" href="group__libnoise.html#ga21">GradientNoise3D()</a> function. </td>+ </tr>+</table>+<a class="anchor" name="ga25" doxytag="noise::ValueNoise3D"></a><p>+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">+ <tr>+ <td class="mdRow">+ <table cellpadding="0" cellspacing="0" border="0">+ <tr>+ <td class="md" nowrap valign="top">double noise::ValueNoise3D </td>+ <td class="md" valign="top">( </td>+ <td class="md" nowrap valign="top">int </td>+ <td class="mdname" nowrap> <em>x</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>y</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>z</em>, </td>+ </tr>+ <tr>+ <td class="md" nowrap align="right"></td>+ <td class="md"></td>+ <td class="md" nowrap>int </td>+ <td class="mdname" nowrap> <em>seed</em> = <code>0</code></td>+ </tr>+ <tr>+ <td class="md"></td>+ <td class="md">) </td>+ <td class="md" colspan="2"></td>+ </tr>+ </table>+ </td>+ </tr>+</table>+<table cellspacing="5" cellpadding="0" border="0">+ <tr>+ <td>+ + </td>+ <td>++<p>+Generates a value-noise value from the coordinates of a three-dimensional input value. +<p>+<dl compact><dt><b>Parameters:</b></dt><dd>+ <table border="0" cellspacing="2" cellpadding="0">+ <tr><td valign="top"></td><td valign="top"><em>x</em> </td><td>The <em>x</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>y</em> </td><td>The <em>y</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>z</em> </td><td>The <em>z</em> coordinate of the input value. </td></tr>+ <tr><td valign="top"></td><td valign="top"><em>seed</em> </td><td>A random number seed.</td></tr>+ </table>+</dl>+<dl compact><dt><b>Returns:</b></dt><dd>The generated value-noise value.</dd></dl>+The return value ranges from -1.0 to +1.0.<p>+A noise function differs from a random-number generator because it always returns the same output value if the same input value is passed to it. </td>+ </tr>+</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,132 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>Miscellaneous Modules<br>+<small>+[<a class="el" href="group__modules.html">Noise Modules</a>]</small>+</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that caches the last output value generated by a source module. <a href="classnoise_1_1module_1_1Cache.html#_details">More...</a><br></td></tr>+</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,141 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>Models<br>+<small>+[<a class="el" href="group__libnoise.html">libnoise</a>]</small>+</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Cylinder.html">noise::model::Cylinder</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Model that defines the surface of a cylinder. <a href="classnoise_1_1model_1_1Cylinder.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Model that defines the displacement of a line segment. <a href="classnoise_1_1model_1_1Line.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Plane.html">noise::model::Plane</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Model that defines the surface of a plane. <a href="classnoise_1_1model_1_1Plane.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1model_1_1Sphere.html">noise::model::Sphere</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Model that defines the surface of a sphere. <a href="classnoise_1_1model_1_1Sphere.html#_details">More...</a><br></td></tr>+</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,171 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>Modifier Modules<br>+<small>+[<a class="el" href="group__modules.html">Noise Modules</a>]</small>+</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Abs.html">noise::module::Abs</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs the absolute value of the output value from a source module. <a href="classnoise_1_1module_1_1Abs.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that clamps the output value from a source module to a range of values. <a href="classnoise_1_1module_1_1Clamp.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that maps the output value from a source module onto an arbitrary function curve. <a href="classnoise_1_1module_1_1Curve.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Exponent.html">noise::module::Exponent</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that maps the output value from a source module onto an exponential curve. <a href="classnoise_1_1module_1_1Exponent.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Invert.html">noise::module::Invert</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that inverts the output value from a source module. <a href="classnoise_1_1module_1_1Invert.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that applies a scaling factor and a bias to the output value from a source module. <a href="classnoise_1_1module_1_1ScaleBias.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that maps the output value from a source module onto a terrace-forming curve. <a href="classnoise_1_1module_1_1Terrace.html#_details">More...</a><br></td></tr>+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="modifiermodules::DEFAULT_CLAMP_LOWER_BOUND"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__modifiermodules.html#ga0">noise::module::DEFAULT_CLAMP_LOWER_BOUND</a> = -1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default lower bound of the clamping range for the <a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga1" doxytag="modifiermodules::DEFAULT_CLAMP_UPPER_BOUND"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__modifiermodules.html#ga1">noise::module::DEFAULT_CLAMP_UPPER_BOUND</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default upper bound of the clamping range for the <a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga2" doxytag="modifiermodules::DEFAULT_EXPONENT"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__modifiermodules.html#ga2">noise::module::DEFAULT_EXPONENT</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default exponent for the <a class="el" href="classnoise_1_1module_1_1Exponent.html">noise::module::Exponent</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga3" doxytag="modifiermodules::DEFAULT_BIAS"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__modifiermodules.html#ga3">noise::module::DEFAULT_BIAS</a> = 0.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default bias for the <a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga4" doxytag="modifiermodules::DEFAULT_SCALE"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__modifiermodules.html#ga4">noise::module::DEFAULT_SCALE</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default scale for the <a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a> noise module. <br></td></tr>+</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,145 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>Noise Modules<br>+<small>+[<a class="el" href="group__libnoise.html">libnoise</a>]</small>+</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Modules</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">group </td><td class="memItemRight" valign="bottom"><a class="el" href="group__modifiermodules.html">Modifier Modules</a></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">group </td><td class="memItemRight" valign="bottom"><a class="el" href="group__combinermodules.html">Combiner Modules</a></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">group </td><td class="memItemRight" valign="bottom"><a class="el" href="group__generatormodules.html">Generator Modules</a></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">group </td><td class="memItemRight" valign="bottom"><a class="el" href="group__selectormodules.html">Selector Modules</a></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">group </td><td class="memItemRight" valign="bottom"><a class="el" href="group__miscmodules.html">Miscellaneous Modules</a></td></tr>++<tr><td class="memItemLeft" nowrap align="right" valign="top">group </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html">Transformer Modules</a></td></tr>++<tr><td colspan="2"><br><h2>Classes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Abstract base class for noise modules. <a href="classnoise_1_1module_1_1Module.html#_details">More...</a><br></td></tr>+</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,148 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>Selector Modules<br>+<small>+[<a class="el" href="group__modules.html">Noise Modules</a>]</small>+</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Blend.html">noise::module::Blend</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs a weighted blend of the output values from two source modules given the output value supplied by a control module. <a href="classnoise_1_1module_1_1Blend.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that outputs the value selected from one of two source modules chosen by the output value from a control module. <a href="classnoise_1_1module_1_1Select.html#_details">More...</a><br></td></tr>+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="selectormodules::DEFAULT_SELECT_EDGE_FALLOFF"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__selectormodules.html#ga0">noise::module::DEFAULT_SELECT_EDGE_FALLOFF</a> = 0.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default edge-falloff value for the <a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga1" doxytag="selectormodules::DEFAULT_SELECT_LOWER_BOUND"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__selectormodules.html#ga1">noise::module::DEFAULT_SELECT_LOWER_BOUND</a> = -1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default lower bound of the selection range for the <a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga2" doxytag="selectormodules::DEFAULT_SELECT_UPPER_BOUND"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__selectormodules.html#ga2">noise::module::DEFAULT_SELECT_UPPER_BOUND</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default upper bound of the selection range for the <a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a> noise module. <br></td></tr>+</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,197 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>Transformer Modules<br>+<small>+[<a class="el" href="group__modules.html">Noise Modules</a>]</small>+</h1>+<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Classes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that uses three source modules to displace each coordinate of the input value before returning the output value from a source module. <a href="classnoise_1_1module_1_1Displace.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that rotates the input value around the origin before returning the output value from a source module. <a href="classnoise_1_1module_1_1RotatePoint.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that scales the coordinates of the input value before returning the output value from a source module. <a href="classnoise_1_1module_1_1ScalePoint.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that moves the coordinates of the input value before returning the output value from a source module. <a href="classnoise_1_1module_1_1TranslatePoint.html#_details">More...</a><br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Noise module that randomly displaces the input value before returning the output value from a source module. <a href="classnoise_1_1module_1_1Turbulence.html#_details">More...</a><br></td></tr>+<tr><td colspan="2"><br><h2>Variables</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="transformermodules::DEFAULT_ROTATE_X"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga0">noise::module::DEFAULT_ROTATE_X</a> = 0.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default <em>x</em> rotation angle for the <a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga1" doxytag="transformermodules::DEFAULT_ROTATE_Y"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga1">noise::module::DEFAULT_ROTATE_Y</a> = 0.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default <em>y</em> rotation angle for the <a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga2" doxytag="transformermodules::DEFAULT_ROTATE_Z"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga2">noise::module::DEFAULT_ROTATE_Z</a> = 0.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default <em>z</em> rotation angle for the <a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga3" doxytag="transformermodules::DEFAULT_SCALE_POINT_X"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga3">noise::module::DEFAULT_SCALE_POINT_X</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default scaling factor applied to the <em>x</em> coordinate for the <a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga4" doxytag="transformermodules::DEFAULT_SCALE_POINT_Y"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga4">noise::module::DEFAULT_SCALE_POINT_Y</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default scaling factor applied to the <em>y</em> coordinate for the <a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga5" doxytag="transformermodules::DEFAULT_SCALE_POINT_Z"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga5">noise::module::DEFAULT_SCALE_POINT_Z</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default scaling factor applied to the <em>z</em> coordinate for the <a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6" doxytag="transformermodules::DEFAULT_TRANSLATE_POINT_X"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga6">noise::module::DEFAULT_TRANSLATE_POINT_X</a> = 0.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default translation factor applied to the <em>x</em> coordinate for the <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga7" doxytag="transformermodules::DEFAULT_TRANSLATE_POINT_Y"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga7">noise::module::DEFAULT_TRANSLATE_POINT_Y</a> = 0.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default translation factor applied to the <em>y</em> coordinate for the <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga8" doxytag="transformermodules::DEFAULT_TRANSLATE_POINT_Z"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga8">noise::module::DEFAULT_TRANSLATE_POINT_Z</a> = 0.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default translation factor applied to the <em>z</em> coordinate for the <a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga9" doxytag="transformermodules::DEFAULT_TURBULENCE_FREQUENCY"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga9">noise::module::DEFAULT_TURBULENCE_FREQUENCY</a> = <a class="el" href="group__generatormodules.html#ga9">DEFAULT_PERLIN_FREQUENCY</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default frequency for the <a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga10" doxytag="transformermodules::DEFAULT_TURBULENCE_POWER"></a>+const double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga10">noise::module::DEFAULT_TURBULENCE_POWER</a> = 1.0</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default power for the <a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga11" doxytag="transformermodules::DEFAULT_TURBULENCE_ROUGHNESS"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga11">noise::module::DEFAULT_TURBULENCE_ROUGHNESS</a> = 3</td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default roughness for the <a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a> noise module. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga12" doxytag="transformermodules::DEFAULT_TURBULENCE_SEED"></a>+const int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__transformermodules.html#ga12">noise::module::DEFAULT_TURBULENCE_SEED</a> = <a class="el" href="group__generatormodules.html#ga14">DEFAULT_PERLIN_SEED</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">Default noise seed for the <a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a> noise module. <br></td></tr>+</table>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,165 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindexHL" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>libnoise Class Hierarchy</h1>This inheritance list is sorted roughly, but not completely, alphabetically:<ul>+<li><a class="el" href="structnoise_1_1module_1_1ControlPoint.html">noise::module::ControlPoint</a>+<li><a class="el" href="classnoise_1_1model_1_1Cylinder.html">noise::model::Cylinder</a>+<li><a class="el" href="classnoise_1_1Exception.html">noise::Exception</a>+<ul>+<li><a class="el" href="classnoise_1_1ExceptionInvalidParam.html">noise::ExceptionInvalidParam</a>+<li><a class="el" href="classnoise_1_1ExceptionNoModule.html">noise::ExceptionNoModule</a>+<li><a class="el" href="classnoise_1_1ExceptionOutOfMemory.html">noise::ExceptionOutOfMemory</a>+<li><a class="el" href="classnoise_1_1ExceptionUnknown.html">noise::ExceptionUnknown</a>+</ul>+<li><a class="el" href="classnoise_1_1model_1_1Line.html">noise::model::Line</a>+<li><a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a>+<ul>+<li><a class="el" href="classnoise_1_1module_1_1Abs.html">noise::module::Abs</a>+<li><a class="el" href="classnoise_1_1module_1_1Add.html">noise::module::Add</a>+<li><a class="el" href="classnoise_1_1module_1_1Billow.html">noise::module::Billow</a>+<li><a class="el" href="classnoise_1_1module_1_1Blend.html">noise::module::Blend</a>+<li><a class="el" href="classnoise_1_1module_1_1Cache.html">noise::module::Cache</a>+<li><a class="el" href="classnoise_1_1module_1_1Checkerboard.html">noise::module::Checkerboard</a>+<li><a class="el" href="classnoise_1_1module_1_1Clamp.html">noise::module::Clamp</a>+<li><a class="el" href="classnoise_1_1module_1_1Const.html">noise::module::Const</a>+<li><a class="el" href="classnoise_1_1module_1_1Curve.html">noise::module::Curve</a>+<li><a class="el" href="classnoise_1_1module_1_1Cylinders.html">noise::module::Cylinders</a>+<li><a class="el" href="classnoise_1_1module_1_1Displace.html">noise::module::Displace</a>+<li><a class="el" href="classnoise_1_1module_1_1Exponent.html">noise::module::Exponent</a>+<li><a class="el" href="classnoise_1_1module_1_1Invert.html">noise::module::Invert</a>+<li><a class="el" href="classnoise_1_1module_1_1Max.html">noise::module::Max</a>+<li><a class="el" href="classnoise_1_1module_1_1Min.html">noise::module::Min</a>+<li><a class="el" href="classnoise_1_1module_1_1Multiply.html">noise::module::Multiply</a>+<li><a class="el" href="classnoise_1_1module_1_1Perlin.html">noise::module::Perlin</a>+<li><a class="el" href="classnoise_1_1module_1_1Power.html">noise::module::Power</a>+<li><a class="el" href="classnoise_1_1module_1_1RidgedMulti.html">noise::module::RidgedMulti</a>+<li><a class="el" href="classnoise_1_1module_1_1RotatePoint.html">noise::module::RotatePoint</a>+<li><a class="el" href="classnoise_1_1module_1_1ScaleBias.html">noise::module::ScaleBias</a>+<li><a class="el" href="classnoise_1_1module_1_1ScalePoint.html">noise::module::ScalePoint</a>+<li><a class="el" href="classnoise_1_1module_1_1Select.html">noise::module::Select</a>+<li><a class="el" href="classnoise_1_1module_1_1Spheres.html">noise::module::Spheres</a>+<li><a class="el" href="classnoise_1_1module_1_1Terrace.html">noise::module::Terrace</a>+<li><a class="el" href="classnoise_1_1module_1_1TranslatePoint.html">noise::module::TranslatePoint</a>+<li><a class="el" href="classnoise_1_1module_1_1Turbulence.html">noise::module::Turbulence</a>+<li><a class="el" href="classnoise_1_1module_1_1Voronoi.html">noise::module::Voronoi</a>+</ul>+<li><a class="el" href="classnoise_1_1model_1_1Plane.html">noise::model::Plane</a>+<li><a class="el" href="classnoise_1_1model_1_1Sphere.html">noise::model::Sphere</a>+</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,136 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindexHL" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>libnoise </h1>+<p>+<h3 align="center">0.9.0 </h3><h2><a class="anchor" name="intro">+Introduction</a></h2>+libnoise is a portable C++ library that is used to generate <em>coherent noise</em>, a type of smoothly-changing noise. libnoise can generate Perlin noise, ridged multifractal noise, and other types of coherent noise.<p>+Coherent noise is often used by graphics programmers to generate natural-looking textures, planetary terrain, and other things. It can also be used to move critters in a realistic way.<p>+libnoise is known to compile using the following compilers on the following platforms:<ul>+<li>Microsoft Visual C++ 5.0 under Microsoft Windows 2000 Service Pack 4</li><li>gcc 3.3.4 under Gentoo Linux 10.0 (x86)</li></ul>+<p>+It is not known if libnoise will compile on 64-bit platforms, although there is a good change that it will.<h2><a class="anchor" name="noise">+Noise Modules</a></h2>+In libnoise, coherent-noise generators are encapsulated in classes called <em>noise modules</em>. There are many different types of noise modules. Some noise modules can combine or modify the outputs of other noise modules in various ways; you can join these modules together to generate very complex coherent noise.<p>+A noise module receives a 3-dimensional input value from the application, computes the noise value given that input value, and returns the resulting value back to the application.<p>+If the application passes the same input value to a noise module, the noise module returns the same output value.<p>+All noise modules are derived from the <a class="el" href="classnoise_1_1module_1_1Module.html">noise::module::Module</a> abstract base class.<h2><a class="anchor" name="contact">+Contact</a></h2>+Contact jas for questions about libnoise. The spam-resistant email address is <a href="mailto:jlbezigvins@gmzigail.com">jlbezigvins@gmzigail.com</a> (For great email, take off every <a href="http://www.planettribes.com/allyourbase/story.shtml">zig</a>.) <!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,184 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a></div>+<h1>interp.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// interp.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_INTERP_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_INTERP_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="keyword">namespace </span>noise+00027 {+00028 +00031 +<a name="l00046"></a><a class="code" href="group__libnoise.html#ga12">00046</a> <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="group__libnoise.html#ga12">CubicInterp</a> (<span class="keywordtype">double</span> n0, <span class="keywordtype">double</span> n1, <span class="keywordtype">double</span> n2, <span class="keywordtype">double</span> n3,+00047 <span class="keywordtype">double</span> a)+00048 {+00049 <span class="keywordtype">double</span> p = (n3 - n2) - (n0 - n1);+00050 <span class="keywordtype">double</span> q = (n0 - n1) - p;+00051 <span class="keywordtype">double</span> r = n2 - n0;+00052 <span class="keywordtype">double</span> s = n1;+00053 <span class="keywordflow">return</span> p * a * a * a + q * a * a + r * a + s;+00054 }+00055 +<a name="l00067"></a><a class="code" href="group__libnoise.html#ga13">00067</a> <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="group__libnoise.html#ga13">LinearInterp</a> (<span class="keywordtype">double</span> n0, <span class="keywordtype">double</span> n1, <span class="keywordtype">double</span> a)+00068 {+00069 <span class="keywordflow">return</span> ((1.0 - a) * n0) + (a * n1);+00070 }+00071 +<a name="l00082"></a><a class="code" href="group__libnoise.html#ga14">00082</a> <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="group__libnoise.html#ga14">SCurve3</a> (<span class="keywordtype">double</span> a)+00083 {+00084 <span class="keywordflow">return</span> (a * a * (3.0 - 2.0 * a));+00085 }+00086 +<a name="l00100"></a><a class="code" href="group__libnoise.html#ga15">00100</a> <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="group__libnoise.html#ga15">SCurve5</a> (<span class="keywordtype">double</span> a)+00101 {+00102 <span class="keywordtype">double</span> a3 = a * a * a;+00103 <span class="keywordtype">double</span> a4 = a3 * a;+00104 <span class="keywordtype">double</span> a5 = a4 * a;+00105 <span class="keywordflow">return</span> (6.0 * a5) - (15.0 * a4) + (10.0 * a3);+00106 }+00107 +00108 <span class="comment">// @}</span>+00109 +00110 }+00111 +00112 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>invert.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// invert.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_INVERT_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_INVERT_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00048"></a><a class="code" href="classnoise_1_1module_1_1Invert.html">00048</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Invert.html">Invert</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00049 {+00050 +00051 <span class="keyword">public</span>:+00052 +00054 <a class="code" href="classnoise_1_1module_1_1Invert.html">Invert</a> ();+00055 +<a name="l00056"></a><a class="code" href="classnoise_1_1module_1_1Invert.html#a1">00056</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00057 <span class="keyword"> </span>{+00058 <span class="keywordflow">return</span> 1;+00059 }+00060 +00061 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00062 +00063 };+00064 +00066 +00068 +00070 +00071 }+00072 +00073 }+00074 +00075 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,160 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a></div>+<h1>latlon.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// latlon.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_LATLON_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_LATLON_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include <math.h></span>+00027 <span class="preprocessor">#include "mathconsts.h"</span>+00028 +00029 <span class="keyword">namespace </span>noise+00030 {+00031 +00034 +00046 <span class="keywordtype">void</span> <a class="code" href="group__libnoise.html#ga16">LatLonToXYZ</a> (<span class="keywordtype">double</span> lat, <span class="keywordtype">double</span> lon, <span class="keywordtype">double</span>& x, <span class="keywordtype">double</span>& y, <span class="keywordtype">double</span>& z);+00047 +00049 +00050 }+00051 +00052 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 4588 bytes)
@@ -0,0 +1,230 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000002.html">model</a></div>+<h1>line.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// line.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2004 Keith Davies</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 +00020 <span class="preprocessor">#ifndef NOISE_MODEL_LINE_H</span>+00021 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODEL_LINE_H</span>+00022 <span class="preprocessor"></span>+00023 <span class="preprocessor">#include <assert.h></span>+00024 <span class="preprocessor">#include <math.h></span>+00025 <span class="preprocessor">#include <stdlib.h></span>+00026 <span class="preprocessor">#include "../module/modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>model+00032 {+00033 +00036 +00039 +<a name="l00053"></a><a class="code" href="classnoise_1_1model_1_1Line.html">00053</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1model_1_1Line.html">Line</a>+00054 {+00055 +00056 <span class="keyword">public</span>:+00057 +00059 <a class="code" href="classnoise_1_1model_1_1Line.html">Line</a> ();+00060 +00065 <a class="code" href="classnoise_1_1model_1_1Line.html">Line</a> (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& module);+00066 +<a name="l00074"></a><a class="code" href="classnoise_1_1model_1_1Line.html#a2">00074</a> <span class="keywordtype">bool</span> GetAttenuate ()<span class="keyword"> const</span>+00075 <span class="keyword"> </span>{+00076 <span class="keywordflow">return</span> m_attenuate;+00077 }+00078 +<a name="l00085"></a><a class="code" href="classnoise_1_1model_1_1Line.html#a3">00085</a> <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& GetModule ()<span class="keyword"> const</span>+00086 <span class="keyword"> </span>{+00087 assert (m_pModule != NULL);+00088 <span class="keywordflow">return</span> *m_pModule;+00089 }+00090 +00111 <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> p) <span class="keyword">const</span>;+00112 +<a name="l00118"></a><a class="code" href="classnoise_1_1model_1_1Line.html#a5">00118</a> <span class="keywordtype">void</span> SetAttenuate (<span class="keywordtype">bool</span> att)+00119 {+00120 m_attenuate = att;+00121 }+00122 +<a name="l00129"></a><a class="code" href="classnoise_1_1model_1_1Line.html#a6">00129</a> <span class="keywordtype">void</span> SetEndPoint (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z)+00130 {+00131 m_x1 = x;+00132 m_y1 = y;+00133 m_z1 = z;+00134 }+00135 +<a name="l00143"></a><a class="code" href="classnoise_1_1model_1_1Line.html#a7">00143</a> <span class="keywordtype">void</span> SetModule (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& module)+00144 {+00145 m_pModule = &module;+00146 }+00147 +<a name="l00154"></a><a class="code" href="classnoise_1_1model_1_1Line.html#a8">00154</a> <span class="keywordtype">void</span> SetStartPoint (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z)+00155 {+00156 m_x0 = x;+00157 m_y0 = y;+00158 m_z0 = z;+00159 }+00160 +00161 <span class="keyword">private</span>:+00162 +00165 <span class="keywordtype">bool</span> m_attenuate;+00166 +00168 <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>* m_pModule;+00169 +00171 <span class="keywordtype">double</span> m_x0;+00172 +00174 <span class="keywordtype">double</span> m_x1;+00175 +00177 <span class="keywordtype">double</span> m_y0;+00178 +00180 <span class="keywordtype">double</span> m_y1;+00181 +00183 <span class="keywordtype">double</span> m_z0;+00184 +00186 <span class="keywordtype">double</span> m_z1;+00187 +00188 };+00189 +00191 +00193 +00194 }+00195 +00196 }+00197 +00198 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,168 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a></div>+<h1>mathconsts.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// mathconsts.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MATHCONSTS_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MATHCONSTS_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="comment">// For whatever reason, I can't find the basic math consts in the MSVC version</span>+00027 <span class="comment">// of math.h.</span>+00028 +00029 <span class="keyword">namespace </span>noise+00030 {+00031 +00034 +<a name="l00036"></a><a class="code" href="group__libnoise.html#ga7">00036</a> <span class="keyword">const</span> <span class="keywordtype">double</span> PI = 3.1415926535897932385;+00037 +<a name="l00039"></a><a class="code" href="group__libnoise.html#ga8">00039</a> <span class="keyword">const</span> <span class="keywordtype">double</span> SQRT_2 = 1.4142135623730950488;+00040 +<a name="l00042"></a><a class="code" href="group__libnoise.html#ga9">00042</a> <span class="keyword">const</span> <span class="keywordtype">double</span> SQRT_3 = 1.7320508075688772935;+00043 +<a name="l00045"></a><a class="code" href="group__libnoise.html#ga10">00045</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEG_TO_RAD = PI / 180.0;+00046 +<a name="l00048"></a><a class="code" href="group__libnoise.html#ga11">00048</a> <span class="keyword">const</span> <span class="keywordtype">double</span> RAD_TO_DEG = 1.0 / DEG_TO_RAD;+00049 +00051 +00052 }+00053 +00054 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>max.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// max.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_MAX_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_MAX_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00049"></a><a class="code" href="classnoise_1_1module_1_1Max.html">00049</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Max.html">Max</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00050 {+00051 +00052 <span class="keyword">public</span>:+00053 +00055 <a class="code" href="classnoise_1_1module_1_1Max.html">Max</a> ();+00056 +<a name="l00057"></a><a class="code" href="classnoise_1_1module_1_1Max.html#a1">00057</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00058 <span class="keyword"> </span>{+00059 <span class="keywordflow">return</span> 2;+00060 }+00061 +00062 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00063 +00064 };+00065 +00067 +00069 +00071 +00072 }+00073 +00074 }+00075 +00076 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>min.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// min.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_MIN_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_MIN_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00049"></a><a class="code" href="classnoise_1_1module_1_1Min.html">00049</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Min.html">Min</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00050 {+00051 +00052 <span class="keyword">public</span>:+00053 +00055 <a class="code" href="classnoise_1_1module_1_1Min.html">Min</a> ();+00056 +<a name="l00057"></a><a class="code" href="classnoise_1_1module_1_1Min.html#a1">00057</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00058 <span class="keyword"> </span>{+00059 <span class="keywordflow">return</span> 2;+00060 }+00061 +00062 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00063 +00064 };+00065 +00067 +00069 +00071 +00072 }+00073 +00074 }+00075 +00076 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,186 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a></div>+<h1>misc.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// misc.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MISC_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MISC_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="keyword">namespace </span>noise+00027 {+00028 +00041 <span class="keyword">inline</span> <span class="keywordtype">int</span> ClampValue (<span class="keywordtype">int</span> value, <span class="keywordtype">int</span> lowerBound, <span class="keywordtype">int</span> upperBound)+00042 {+00043 <span class="keywordflow">if</span> (value < lowerBound) {+00044 <span class="keywordflow">return</span> lowerBound;+00045 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (value > upperBound) {+00046 <span class="keywordflow">return</span> upperBound;+00047 } <span class="keywordflow">else</span> {+00048 <span class="keywordflow">return</span> value;+00049 }+00050 }+00051 +00054 +00061 <span class="keyword">template</span> <<span class="keyword">class</span> T>+<a name="l00062"></a><a class="code" href="group__libnoise.html#ga17">00062</a> T <a class="code" href="group__libnoise.html#ga17">GetMax</a> (<span class="keyword">const</span> T& a, <span class="keyword">const</span> T& b)+00063 {+00064 <span class="keywordflow">return</span> (a > b? a: b);+00065 }+00066 +00073 <span class="keyword">template</span> <<span class="keyword">class</span> T>+<a name="l00074"></a><a class="code" href="group__libnoise.html#ga18">00074</a> T <a class="code" href="group__libnoise.html#ga18">GetMin</a> (<span class="keyword">const</span> T& a, <span class="keyword">const</span> T& b)+00075 {+00076 <span class="keywordflow">return</span> (a < b? a: b);+00077 }+00078 +00085 <span class="keyword">template</span> <<span class="keyword">class</span> T>+<a name="l00086"></a><a class="code" href="group__libnoise.html#ga19">00086</a> <span class="keywordtype">void</span> <a class="code" href="group__libnoise.html#ga19">SwapValues</a> (T& a, T& b)+00087 {+00088 T c = a;+00089 a = b;+00090 b = c;+00091 }+00092 +00094 +00095 }+00096 +00097 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,153 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000002.html">model</a></div>+<h1>model.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// model.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODEL_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODEL_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "cylinder.h"</span>+00027 <span class="preprocessor">#include "line.h"</span>+00028 <span class="preprocessor">#include "plane.h"</span>+00029 <span class="preprocessor">#include "sphere.h"</span>+00030 +00031 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 29923 bytes)
binary file changed (absent → 17945 bytes)
@@ -0,0 +1,177 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>module.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// module.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "add.h"</span>+00027 <span class="preprocessor">#include "abs.h"</span>+00028 <span class="preprocessor">#include "billow.h"</span>+00029 <span class="preprocessor">#include "blend.h"</span>+00030 <span class="preprocessor">#include "cache.h"</span>+00031 <span class="preprocessor">#include "checkerboard.h"</span>+00032 <span class="preprocessor">#include "clamp.h"</span>+00033 <span class="preprocessor">#include "const.h"</span>+00034 <span class="preprocessor">#include "curve.h"</span>+00035 <span class="preprocessor">#include "cylinders.h"</span>+00036 <span class="preprocessor">#include "displace.h"</span>+00037 <span class="preprocessor">#include "exponent.h"</span>+00038 <span class="preprocessor">#include "invert.h"</span>+00039 <span class="preprocessor">#include "max.h"</span>+00040 <span class="preprocessor">#include "min.h"</span>+00041 <span class="preprocessor">#include "multiply.h"</span>+00042 <span class="preprocessor">#include "perlin.h"</span>+00043 <span class="preprocessor">#include "power.h"</span>+00044 <span class="preprocessor">#include "ridgedmulti.h"</span>+00045 <span class="preprocessor">#include "rotatepoint.h"</span>+00046 <span class="preprocessor">#include "scalebias.h"</span>+00047 <span class="preprocessor">#include "scalepoint.h"</span>+00048 <span class="preprocessor">#include "select.h"</span>+00049 <span class="preprocessor">#include "spheres.h"</span>+00050 <span class="preprocessor">#include "terrace.h"</span>+00051 <span class="preprocessor">#include "translatepoint.h"</span>+00052 <span class="preprocessor">#include "turbulence.h"</span>+00053 <span class="preprocessor">#include "voronoi.h"</span>+00054 +00055 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 17468 bytes)
binary file changed (absent → 25684 bytes)
@@ -0,0 +1,214 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>modulebase.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// modulebase.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULEBASE_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULEBASE_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include <stdlib.h></span>+00027 <span class="preprocessor">#include <assert.h></span>+00028 <span class="preprocessor">#include <math.h></span>+00029 <span class="preprocessor">#include "../basictypes.h"</span>+00030 <span class="preprocessor">#include "../exception.h"</span>+00031 <span class="preprocessor">#include "../noisegen.h"</span>+00032 +00033 <span class="keyword">namespace </span>noise+00034 {+00035 +00036 <span class="keyword">namespace </span>module+00037 {+00038 +00041 +00045 +<a name="l00223"></a><a class="code" href="classnoise_1_1module_1_1Module.html">00223</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00224 {+00225 +00226 <span class="keyword">public</span>:+00227 +00229 <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a> (<span class="keywordtype">int</span> sourceModuleCount);+00230 +00232 ~<a class="code" href="classnoise_1_1module_1_1Module.html">Module</a> ();+00233 +<a name="l00252"></a><a class="code" href="classnoise_1_1module_1_1Module.html#a2">00252</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& GetSourceModule (<span class="keywordtype">int</span> index)<span class="keyword"> const</span>+00253 <span class="keyword"> </span>{+00254 assert (m_pSourceModule != NULL);+00255 <span class="keywordflow">if</span> (index >= GetSourceModuleCount () || index < 0+00256 || m_pSourceModule[index] != NULL) {+00257 <span class="keywordflow">throw</span> <a class="code" href="classnoise_1_1ExceptionNoModule.html">noise::ExceptionNoModule</a> ();+00258 }+00259 <span class="keywordflow">return</span> *(m_pSourceModule[index]);+00260 }+00261 +00267 <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount () <span class="keyword">const </span>= 0;+00268 +00288 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const </span>= 0;+00289 +<a name="l00320"></a><a class="code" href="classnoise_1_1module_1_1Module.html#a5">00320</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetSourceModule (<span class="keywordtype">int</span> index, <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& sourceModule)+00321 {+00322 assert (m_pSourceModule != NULL);+00323 <span class="keywordflow">if</span> (index >= GetSourceModuleCount () || index < 0) {+00324 <span class="keywordflow">throw</span> <a class="code" href="classnoise_1_1ExceptionInvalidParam.html">noise::ExceptionInvalidParam</a> ();+00325 }+00326 m_pSourceModule[index] = &sourceModule;+00327 }+00328 +00329 <span class="keyword">protected</span>:+00330 +<a name="l00333"></a><a class="code" href="classnoise_1_1module_1_1Module.html#p0">00333</a> <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>** m_pSourceModule;+00334 +00335 <span class="keyword">private</span>:+00336 +00343 <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& operator= (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& m)+00344 {+00345 <span class="keywordflow">return</span> *<span class="keyword">this</span>;+00346 }+00347 +00348 };+00349 +00351 +00353 +00354 } +00355 +00356 }+00357 +00358 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 11131 bytes)
binary file changed (absent → 37086 bytes)
binary file changed (absent → 767 bytes)
binary file changed (absent → 14611 bytes)
binary file changed (absent → 741 bytes)
binary file changed (absent → 23073 bytes)
binary file changed (absent → 854 bytes)
binary file changed (absent → 5360 bytes)
binary file changed (absent → 20514 bytes)
binary file changed (absent → 17298 bytes)
binary file changed (absent → 18206 bytes)
binary file changed (absent → 19158 bytes)
binary file changed (absent → 34888 bytes)
binary file changed (absent → 12678 bytes)
binary file changed (absent → 26721 bytes)
binary file changed (absent → 10202 bytes)
binary file changed (absent → 20349 bytes)
@@ -0,0 +1,135 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindexHL" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>libnoise Modules</h1>Here is a list of all modules:<ul>+<li><a class="el" href="group__libnoise.html">libnoise</a>+<ul>+<li><a class="el" href="group__models.html">Models</a>+<li><a class="el" href="group__modules.html">Noise Modules</a>+<ul>+<li><a class="el" href="group__modifiermodules.html">Modifier Modules</a>+<li><a class="el" href="group__combinermodules.html">Combiner Modules</a>+<li><a class="el" href="group__generatormodules.html">Generator Modules</a>+<li><a class="el" href="group__selectormodules.html">Selector Modules</a>+<li><a class="el" href="group__miscmodules.html">Miscellaneous Modules</a>+<li><a class="el" href="group__transformermodules.html">Transformer Modules</a>+</ul>+</ul>+</ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 19745 bytes)
binary file changed (absent → 18950 bytes)
binary file changed (absent → 30003 bytes)
binary file changed (absent → 5659 bytes)
binary file changed (absent → 21958 bytes)
binary file changed (absent → 9271 bytes)
binary file changed (absent → 17441 bytes)
binary file changed (absent → 3108 bytes)
@@ -0,0 +1,182 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>multiply.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// multiply.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_MULTIPLY_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_MULTIPLY_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00049"></a><a class="code" href="classnoise_1_1module_1_1Multiply.html">00049</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Multiply.html">Multiply</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00050 {+00051 +00052 <span class="keyword">public</span>:+00053 +00055 <a class="code" href="classnoise_1_1module_1_1Multiply.html">Multiply</a> ();+00056 +<a name="l00057"></a><a class="code" href="classnoise_1_1module_1_1Multiply.html#a1">00057</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00058 <span class="keyword"> </span>{+00059 <span class="keywordflow">return</span> 2;+00060 }+00061 +00062 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00063 +00064 };+00065 +00067 +00069 +00071 +00072 }+00073 +00074 }+00075 +00076 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,153 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a></div>+<h1>noise.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// noise.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_H</span>+00025 <span class="preprocessor"></span>+00069 +00070 <span class="preprocessor">#include "module/module.h"</span>+00071 <span class="preprocessor">#include "model/model.h"</span>+00072 <span class="preprocessor">#include "misc.h"</span>+00073 +00074 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,193 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a></div>+<h1>noisegen.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// noisegen.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_NOISEGEN_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_NOISEGEN_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include <math.h></span>+00027 <span class="preprocessor">#include "basictypes.h"</span>+00028 +00029 <span class="keyword">namespace </span>noise+00030 {+00031 +00034 +<a name="l00036"></a><a class="code" href="group__libnoise.html#ga26">00036</a> <span class="keyword">enum</span> NoiseQuality+00037 {+00038 +00044 QUALITY_FAST = 0,+00045 +00051 QUALITY_STD = 1,+00052 +00058 QUALITY_BEST = 2+00059 +00060 };+00061 +00077 <span class="keywordtype">double</span> <a class="code" href="group__libnoise.html#ga20">GradientCoherentNoise3D</a> (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z, <span class="keywordtype">int</span> seed = 0,+00078 NoiseQuality noiseQuality = QUALITY_STD);+00079 +00121 <span class="keywordtype">double</span> <a class="code" href="group__libnoise.html#ga21">GradientNoise3D</a> (<span class="keywordtype">double</span> fx, <span class="keywordtype">double</span> fy, <span class="keywordtype">double</span> fz, <span class="keywordtype">int</span> ix, <span class="keywordtype">int</span> iy,+00122 <span class="keywordtype">int</span> iz, <span class="keywordtype">int</span> seed = 0);+00123 +00139 <span class="keywordtype">int</span> <a class="code" href="group__libnoise.html#ga22">IntValueNoise3D</a> (<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> z, <span class="keywordtype">int</span> seed = 0);+00140 +<a name="l00158"></a><a class="code" href="group__libnoise.html#ga23">00158</a> <span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="group__libnoise.html#ga23">MakeInt32Range</a> (<span class="keywordtype">double</span> n)+00159 {+00160 <span class="keywordflow">if</span> (n >= 1073741824.0) {+00161 <span class="keywordflow">return</span> (2.0 * fmod (n, 1073741824.0)) - 1073741824.0;+00162 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (n <= -1073741824.0) {+00163 <span class="keywordflow">return</span> (2.0 * fmod (n, 1073741824.0)) + 1073741824.0;+00164 } <span class="keywordflow">else</span> {+00165 <span class="keywordflow">return</span> n;+00166 }+00167 }+00168 +00184 <span class="keywordtype">double</span> <a class="code" href="group__libnoise.html#ga24">ValueCoherentNoise3D</a> (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z, <span class="keywordtype">int</span> seed = 0,+00185 NoiseQuality noiseQuality = QUALITY_STD);+00186 +00202 <span class="keywordtype">double</span> <a class="code" href="group__libnoise.html#ga25">ValueNoise3D</a> (<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> z, <span class="keywordtype">int</span> seed = 0);+00203 +00205 +00206 }+00207 +00208 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,273 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>perlin.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// perlin.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_PERLIN_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_PERLIN_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00044"></a><a class="code" href="group__generatormodules.html#ga9">00044</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_PERLIN_FREQUENCY = 1.0;+00045 +<a name="l00047"></a><a class="code" href="group__generatormodules.html#ga10">00047</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_PERLIN_LACUNARITY = 2.0;+00048 +<a name="l00050"></a><a class="code" href="group__generatormodules.html#ga11">00050</a> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_PERLIN_OCTAVE_COUNT = 6;+00051 +<a name="l00053"></a><a class="code" href="group__generatormodules.html#ga12">00053</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_PERLIN_PERSISTENCE = 0.5;+00054 +<a name="l00056"></a><a class="code" href="group__generatormodules.html#ga13">00056</a> <span class="keyword">const</span> noise::NoiseQuality DEFAULT_PERLIN_QUALITY = QUALITY_STD;+00057 +<a name="l00059"></a><a class="code" href="group__generatormodules.html#ga14">00059</a> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_PERLIN_SEED = 0;+00060 +<a name="l00062"></a><a class="code" href="group__generatormodules.html#ga15">00062</a> <span class="keyword">const</span> <span class="keywordtype">int</span> PERLIN_MAX_OCTAVE = 30;+00063 +<a name="l00160"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html">00160</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Perlin.html">Perlin</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00161 {+00162 +00163 <span class="keyword">public</span>:+00164 +00181 <a class="code" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> ();+00182 +<a name="l00186"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a1">00186</a> <span class="keywordtype">double</span> GetFrequency ()<span class="keyword"> const</span>+00187 <span class="keyword"> </span>{+00188 <span class="keywordflow">return</span> m_frequency;+00189 }+00190 +<a name="l00197"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a2">00197</a> <span class="keywordtype">double</span> GetLacunarity ()<span class="keyword"> const</span>+00198 <span class="keyword"> </span>{+00199 <span class="keywordflow">return</span> m_lacunarity;+00200 }+00201 +<a name="l00208"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a3">00208</a> noise::NoiseQuality GetNoiseQuality ()<span class="keyword"> const</span>+00209 <span class="keyword"> </span>{+00210 <span class="keywordflow">return</span> m_noiseQuality;+00211 }+00212 +<a name="l00219"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a4">00219</a> <span class="keywordtype">int</span> GetOctaveCount ()<span class="keyword"> const</span>+00220 <span class="keyword"> </span>{+00221 <span class="keywordflow">return</span> m_octaveCount;+00222 }+00223 +<a name="l00229"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a5">00229</a> <span class="keywordtype">double</span> GetPersistence ()<span class="keyword"> const</span>+00230 <span class="keyword"> </span>{+00231 <span class="keywordflow">return</span> m_persistence;+00232 }+00233 +<a name="l00237"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a6">00237</a> <span class="keywordtype">int</span> GetSeed ()<span class="keyword"> const</span>+00238 <span class="keyword"> </span>{+00239 <span class="keywordflow">return</span> m_seed;+00240 }+00241 +<a name="l00242"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a7">00242</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00243 <span class="keyword"> </span>{+00244 <span class="keywordflow">return</span> 0;+00245 }+00246 +00247 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00248 +<a name="l00252"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a9">00252</a> <span class="keywordtype">void</span> SetFrequency (<span class="keywordtype">double</span> frequency)+00253 {+00254 m_frequency = frequency;+00255 }+00256 +<a name="l00266"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a10">00266</a> <span class="keywordtype">void</span> SetLacunarity (<span class="keywordtype">double</span> lacunarity)+00267 {+00268 m_lacunarity = lacunarity;+00269 }+00270 +<a name="l00277"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a11">00277</a> <span class="keywordtype">void</span> SetNoiseQuality (noise::NoiseQuality noiseQuality)+00278 {+00279 m_noiseQuality = noiseQuality;+00280 }+00281 +<a name="l00298"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a12">00298</a> <span class="keywordtype">void</span> SetOctaveCount (<span class="keywordtype">int</span> octaveCount)+00299 {+00300 <span class="keywordflow">if</span> (octaveCount < 1 || octaveCount > PERLIN_MAX_OCTAVE) {+00301 <span class="keywordflow">throw</span> <a class="code" href="classnoise_1_1ExceptionInvalidParam.html">noise::ExceptionInvalidParam</a> ();+00302 }+00303 m_octaveCount = octaveCount;+00304 }+00305 +<a name="l00314"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a13">00314</a> <span class="keywordtype">void</span> SetPersistence (<span class="keywordtype">double</span> persistence)+00315 {+00316 m_persistence = persistence;+00317 }+00318 +<a name="l00322"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#a14">00322</a> <span class="keywordtype">void</span> SetSeed (<span class="keywordtype">int</span> seed)+00323 {+00324 m_seed = seed;+00325 }+00326 +00327 <span class="keyword">protected</span>:+00328 +<a name="l00330"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#p0">00330</a> <span class="keywordtype">double</span> m_frequency;+00331 +<a name="l00333"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#p1">00333</a> <span class="keywordtype">double</span> m_lacunarity;+00334 +<a name="l00336"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#p2">00336</a> noise::NoiseQuality m_noiseQuality;+00337 +<a name="l00339"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#p3">00339</a> <span class="keywordtype">int</span> m_octaveCount;+00340 +<a name="l00342"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#p4">00342</a> <span class="keywordtype">double</span> m_persistence;+00343 +<a name="l00345"></a><a class="code" href="classnoise_1_1module_1_1Perlin.html#p5">00345</a> <span class="keywordtype">int</span> m_seed;+00346 +00347 };+00348 +00350 +00352 +00354 +00355 }+00356 +00357 }+00358 +00359 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,191 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000002.html">model</a></div>+<h1>plane.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// plane.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2004 Owen Jacobson</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is ojacobson@lionsanctuary.net</span>+00020 <span class="comment">//</span>+00021 +00022 <span class="preprocessor">#ifndef NOISE_MODEL_PLANE_H</span>+00023 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODEL_PLANE_H</span>+00024 <span class="preprocessor"></span>+00025 <span class="preprocessor">#include <assert.h></span>+00026 <span class="preprocessor">#include "../module/modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>model+00032 {+00035 +00038 +<a name="l00053"></a><a class="code" href="classnoise_1_1model_1_1Plane.html">00053</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1model_1_1Plane.html">Plane</a>+00054 {+00055 +00056 <span class="keyword">public</span>:+00057 +00059 <a class="code" href="classnoise_1_1model_1_1Plane.html">Plane</a> ();+00060 +00065 <a class="code" href="classnoise_1_1model_1_1Plane.html">Plane</a> (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& module);+00066 +<a name="l00073"></a><a class="code" href="classnoise_1_1model_1_1Plane.html#a2">00073</a> <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& GetModule ()<span class="keyword"> const</span>+00074 <span class="keyword"> </span>{+00075 assert (m_pModule != NULL);+00076 <span class="keywordflow">return</span> *m_pModule;+00077 }+00078 +00092 <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00093 +<a name="l00101"></a><a class="code" href="classnoise_1_1model_1_1Plane.html#a4">00101</a> <span class="keywordtype">void</span> SetModule (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& module)+00102 {+00103 m_pModule = &module;+00104 }+00105 +00106 <span class="keyword">private</span>:+00107 +00109 <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>* m_pModule;+00110 +00111 };+00112 +00114 +00116 +00117 }+00118 +00119 }+00120 +00121 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,181 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>power.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// power.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2004 Owen Jacobson</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is angstrom@lionsanctuary.net</span>+00020 <span class="comment">//</span>+00021 +00022 <span class="preprocessor">#ifndef NOISE_MODULE_POWER_H</span>+00023 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_POWER_H</span>+00024 <span class="preprocessor"></span>+00025 <span class="preprocessor">#include "modulebase.h"</span>+00026 +00027 <span class="keyword">namespace </span>noise+00028 {+00029 +00030 <span class="keyword">namespace </span>module+00031 {+00032 +00035 +00038 +00042 +<a name="l00053"></a><a class="code" href="classnoise_1_1module_1_1Power.html">00053</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Power.html">Power</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00054 {+00055 +00056 <span class="keyword">public</span>:+00057 +00059 <a class="code" href="classnoise_1_1module_1_1Power.html">Power</a> ();+00060 +<a name="l00061"></a><a class="code" href="classnoise_1_1module_1_1Power.html#a1">00061</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00062 <span class="keyword"> </span>{+00063 <span class="keywordflow">return</span> 2;+00064 }+00065 +00066 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00067 +00068 };+00069 +00071 +00073 +00075 +00076 }+00077 +00078 }+00079 +00080 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,137 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000003.html">win32</a></div>+<h1>resource.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">//{{NO_DEPENDENCIES}}</span>+00002 <span class="comment">// Microsoft Developer Studio generated include file.</span>+00003 <span class="comment">// Used by noise.rc</span>+00004 <span class="comment">//</span>+00005 +00006 <span class="comment">// Next default values for new objects</span>+00007 <span class="comment">// </span>+00008 <span class="preprocessor">#ifdef APSTUDIO_INVOKED</span>+00009 <span class="preprocessor"></span><span class="preprocessor">#ifndef APSTUDIO_READONLY_SYMBOLS</span>+00010 <span class="preprocessor"></span><span class="preprocessor">#define _APS_NEXT_RESOURCE_VALUE 101</span>+00011 <span class="preprocessor"></span><span class="preprocessor">#define _APS_NEXT_COMMAND_VALUE 40001</span>+00012 <span class="preprocessor"></span><span class="preprocessor">#define _APS_NEXT_CONTROL_VALUE 1000</span>+00013 <span class="preprocessor"></span><span class="preprocessor">#define _APS_NEXT_SYMED_VALUE 101</span>+00014 <span class="preprocessor"></span><span class="preprocessor">#endif</span>+00015 <span class="preprocessor"></span><span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,264 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>ridgedmulti.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// ridgedmulti.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_RIDGEDMULTI_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_RIDGEDMULTI_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00044"></a><a class="code" href="group__generatormodules.html#ga16">00044</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_RIDGED_FREQUENCY = 1.0;+00045 +<a name="l00047"></a><a class="code" href="group__generatormodules.html#ga17">00047</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_RIDGED_LACUNARITY = 2.0;+00048 +<a name="l00051"></a><a class="code" href="group__generatormodules.html#ga18">00051</a> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_RIDGED_OCTAVE_COUNT = 6;+00052 +<a name="l00055"></a><a class="code" href="group__generatormodules.html#ga19">00055</a> <span class="keyword">const</span> noise::NoiseQuality DEFAULT_RIDGED_QUALITY = QUALITY_STD;+00056 +<a name="l00058"></a><a class="code" href="group__generatormodules.html#ga20">00058</a> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_RIDGED_SEED = 0;+00059 +<a name="l00062"></a><a class="code" href="group__generatormodules.html#ga21">00062</a> <span class="keyword">const</span> <span class="keywordtype">int</span> RIDGED_MAX_OCTAVE = 30;+00063 +<a name="l00128"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html">00128</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html">RidgedMulti</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00129 {+00130 +00131 <span class="keyword">public</span>:+00132 +00146 <a class="code" href="classnoise_1_1module_1_1RidgedMulti.html">RidgedMulti</a> ();+00147 +<a name="l00151"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#a1">00151</a> <span class="keywordtype">double</span> GetFrequency ()<span class="keyword"> const</span>+00152 <span class="keyword"> </span>{+00153 <span class="keywordflow">return</span> m_frequency;+00154 }+00155 +<a name="l00162"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#a2">00162</a> <span class="keywordtype">double</span> GetLacunarity ()<span class="keyword"> const</span>+00163 <span class="keyword"> </span>{+00164 <span class="keywordflow">return</span> m_lacunarity;+00165 }+00166 +<a name="l00173"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#a3">00173</a> noise::NoiseQuality GetNoiseQuality ()<span class="keyword"> const</span>+00174 <span class="keyword"> </span>{+00175 <span class="keywordflow">return</span> m_noiseQuality;+00176 }+00177 +<a name="l00186"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#a4">00186</a> <span class="keywordtype">int</span> GetOctaveCount ()<span class="keyword"> const</span>+00187 <span class="keyword"> </span>{+00188 <span class="keywordflow">return</span> m_octaveCount;+00189 }+00190 +<a name="l00195"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#a5">00195</a> <span class="keywordtype">int</span> GetSeed ()<span class="keyword"> const</span>+00196 <span class="keyword"> </span>{+00197 <span class="keywordflow">return</span> m_seed;+00198 }+00199 +<a name="l00200"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#a6">00200</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00201 <span class="keyword"> </span>{+00202 <span class="keywordflow">return</span> 0;+00203 }+00204 +00205 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00206 +<a name="l00210"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#a8">00210</a> <span class="keywordtype">void</span> SetFrequency (<span class="keywordtype">double</span> frequency)+00211 {+00212 m_frequency = frequency;+00213 }+00214 +<a name="l00224"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#a9">00224</a> <span class="keywordtype">void</span> SetLacunarity (<span class="keywordtype">double</span> lacunarity)+00225 {+00226 m_lacunarity = lacunarity;+00227 CalcSpectralWeights ();+00228 }+00229 +<a name="l00236"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#a10">00236</a> <span class="keywordtype">void</span> SetNoiseQuality (noise::NoiseQuality noiseQuality)+00237 {+00238 m_noiseQuality = noiseQuality;+00239 }+00240 +<a name="l00258"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#a11">00258</a> <span class="keywordtype">void</span> SetOctaveCount (<span class="keywordtype">int</span> octaveCount)+00259 {+00260 <span class="keywordflow">if</span> (octaveCount > RIDGED_MAX_OCTAVE) {+00261 <span class="keywordflow">throw</span> <a class="code" href="classnoise_1_1ExceptionInvalidParam.html">noise::ExceptionInvalidParam</a> ();+00262 }+00263 m_octaveCount = octaveCount;+00264 }+00265 +<a name="l00270"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#a12">00270</a> <span class="keywordtype">void</span> SetSeed (<span class="keywordtype">int</span> seed)+00271 {+00272 m_seed = seed;+00273 }+00274 +00275 <span class="keyword">protected</span>:+00276 +00280 <span class="keywordtype">void</span> CalcSpectralWeights ();+00281 +<a name="l00283"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#p0">00283</a> <span class="keywordtype">double</span> m_frequency;+00284 +<a name="l00286"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#p1">00286</a> <span class="keywordtype">double</span> m_lacunarity;+00287 +<a name="l00289"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#p2">00289</a> noise::NoiseQuality m_noiseQuality;+00290 +<a name="l00293"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#p3">00293</a> <span class="keywordtype">int</span> m_octaveCount;+00294 +<a name="l00296"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#p4">00296</a> <span class="keywordtype">double</span> m_pSpectralWeights[RIDGED_MAX_OCTAVE];+00297 +<a name="l00299"></a><a class="code" href="classnoise_1_1module_1_1RidgedMulti.html#p5">00299</a> <span class="keywordtype">int</span> m_seed;+00300 +00301 };+00302 +00304 +00306 +00308 +00309 }+00310 +00311 }+00312 +00313 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,246 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>rotatepoint.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// rotatepoint.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_ROTATEPOINT_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_ROTATEPOINT_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00045"></a><a class="code" href="group__transformermodules.html#ga0">00045</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_ROTATE_X = 0.0;+00046 +<a name="l00049"></a><a class="code" href="group__transformermodules.html#ga1">00049</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_ROTATE_Y = 0.0;+00050 +<a name="l00053"></a><a class="code" href="group__transformermodules.html#ga2">00053</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_ROTATE_Z = 0.0;+00054 +<a name="l00072"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html">00072</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1RotatePoint.html">RotatePoint</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00073 {+00074 +00075 <span class="keyword">public</span>:+00076 +00087 <a class="code" href="classnoise_1_1module_1_1RotatePoint.html">RotatePoint</a> ();+00088 +<a name="l00089"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#a1">00089</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00090 <span class="keyword"> </span>{+00091 <span class="keywordflow">return</span> 1;+00092 }+00093 +00094 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00095 +<a name="l00100"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#a3">00100</a> <span class="keywordtype">double</span> GetXAngle ()<span class="keyword"> const</span>+00101 <span class="keyword"> </span>{+00102 <span class="keywordflow">return</span> m_xAngle;+00103 }+00104 +<a name="l00109"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#a4">00109</a> <span class="keywordtype">double</span> GetYAngle ()<span class="keyword"> const</span>+00110 <span class="keyword"> </span>{+00111 <span class="keywordflow">return</span> m_yAngle;+00112 }+00113 +<a name="l00118"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#a5">00118</a> <span class="keywordtype">double</span> GetZAngle ()<span class="keyword"> const</span>+00119 <span class="keyword"> </span>{+00120 <span class="keywordflow">return</span> m_zAngle;+00121 }+00122 +00133 <span class="keywordtype">void</span> SetAngles (<span class="keywordtype">double</span> xAngle, <span class="keywordtype">double</span> yAngle, <span class="keywordtype">double</span> zAngle);+00134 +<a name="l00143"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#a7">00143</a> <span class="keywordtype">void</span> SetXAngle (<span class="keywordtype">double</span> xAngle)+00144 {+00145 SetAngles (xAngle, m_yAngle, m_zAngle);+00146 }+00147 +<a name="l00156"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#a8">00156</a> <span class="keywordtype">void</span> SetYAngle (<span class="keywordtype">double</span> yAngle)+00157 {+00158 SetAngles (m_xAngle, yAngle, m_zAngle);+00159 }+00160 +<a name="l00169"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#a9">00169</a> <span class="keywordtype">void</span> SetZAngle (<span class="keywordtype">double</span> zAngle)+00170 {+00171 SetAngles (m_xAngle, m_yAngle, zAngle);+00172 }+00173 +00174 <span class="keyword">protected</span>:+00175 +<a name="l00178"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p0">00178</a> <span class="keywordtype">double</span> m_x1Matrix;+00179 +<a name="l00182"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p1">00182</a> <span class="keywordtype">double</span> m_x2Matrix;+00183 +<a name="l00186"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p2">00186</a> <span class="keywordtype">double</span> m_x3Matrix;+00187 +<a name="l00189"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p3">00189</a> <span class="keywordtype">double</span> m_xAngle;+00190 +<a name="l00193"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p4">00193</a> <span class="keywordtype">double</span> m_y1Matrix;+00194 +<a name="l00197"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p5">00197</a> <span class="keywordtype">double</span> m_y2Matrix;+00198 +<a name="l00201"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p6">00201</a> <span class="keywordtype">double</span> m_y3Matrix;+00202 +<a name="l00204"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p7">00204</a> <span class="keywordtype">double</span> m_yAngle;+00205 +<a name="l00208"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p8">00208</a> <span class="keywordtype">double</span> m_z1Matrix;+00209 +<a name="l00212"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p9">00212</a> <span class="keywordtype">double</span> m_z2Matrix;+00213 +<a name="l00216"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p10">00216</a> <span class="keywordtype">double</span> m_z3Matrix;+00217 +<a name="l00219"></a><a class="code" href="classnoise_1_1module_1_1RotatePoint.html#p11">00219</a> <span class="keywordtype">double</span> m_zAngle;+00220 +00221 };+00222 +00224 +00226 +00228 +00229 }+00230 +00231 }+00232 +00233 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,212 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>scalebias.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// scalebias.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_SCALEBIAS_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_SCALEBIAS_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00044"></a><a class="code" href="group__modifiermodules.html#ga3">00044</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_BIAS = 0.0;+00045 +<a name="l00047"></a><a class="code" href="group__modifiermodules.html#ga4">00047</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_SCALE = 1.0;+00048 +<a name="l00059"></a><a class="code" href="classnoise_1_1module_1_1ScaleBias.html">00059</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1ScaleBias.html">ScaleBias</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00060 {+00061 +00062 <span class="keyword">public</span>:+00063 +00069 <a class="code" href="classnoise_1_1module_1_1ScaleBias.html">ScaleBias</a> ();+00070 +<a name="l00079"></a><a class="code" href="classnoise_1_1module_1_1ScaleBias.html#a1">00079</a> <span class="keywordtype">double</span> GetBias ()<span class="keyword"> const</span>+00080 <span class="keyword"> </span>{+00081 <span class="keywordflow">return</span> m_bias;+00082 }+00083 +<a name="l00092"></a><a class="code" href="classnoise_1_1module_1_1ScaleBias.html#a2">00092</a> <span class="keywordtype">double</span> GetScale ()<span class="keyword"> const</span>+00093 <span class="keyword"> </span>{+00094 <span class="keywordflow">return</span> m_scale;+00095 }+00096 +<a name="l00097"></a><a class="code" href="classnoise_1_1module_1_1ScaleBias.html#a3">00097</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00098 <span class="keyword"> </span>{+00099 <span class="keywordflow">return</span> 1;+00100 }+00101 +00102 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00103 +<a name="l00112"></a><a class="code" href="classnoise_1_1module_1_1ScaleBias.html#a5">00112</a> <span class="keywordtype">void</span> SetBias (<span class="keywordtype">double</span> bias)+00113 {+00114 m_bias = bias;+00115 }+00116 +<a name="l00125"></a><a class="code" href="classnoise_1_1module_1_1ScaleBias.html#a6">00125</a> <span class="keywordtype">void</span> SetScale (<span class="keywordtype">double</span> scale)+00126 {+00127 m_scale = scale;+00128 }+00129 +00130 <span class="keyword">protected</span>:+00131 +<a name="l00133"></a><a class="code" href="classnoise_1_1module_1_1ScaleBias.html#p0">00133</a> <span class="keywordtype">double</span> m_bias;+00134 +<a name="l00137"></a><a class="code" href="classnoise_1_1module_1_1ScaleBias.html#p1">00137</a> <span class="keywordtype">double</span> m_scale;+00138 +00139 };+00140 +00142 +00144 +00146 +00147 }+00148 +00149 }+00150 +00151 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,240 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>scalepoint.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// scalepoint.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_SCALEPOINT_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_SCALEPOINT_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00045"></a><a class="code" href="group__transformermodules.html#ga3">00045</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_SCALE_POINT_X = 1.0;+00046 +<a name="l00049"></a><a class="code" href="group__transformermodules.html#ga4">00049</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_SCALE_POINT_Y = 1.0;+00050 +<a name="l00053"></a><a class="code" href="group__transformermodules.html#ga5">00053</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_SCALE_POINT_Z = 1.0;+00054 +<a name="l00068"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html">00068</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1ScalePoint.html">ScalePoint</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00069 {+00070 +00071 <span class="keyword">public</span>:+00072 +00083 <a class="code" href="classnoise_1_1module_1_1ScalePoint.html">ScalePoint</a> ();+00084 +<a name="l00085"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#a1">00085</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00086 <span class="keyword"> </span>{+00087 <span class="keywordflow">return</span> 1;+00088 }+00089 +00090 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00091 +<a name="l00096"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#a3">00096</a> <span class="keywordtype">double</span> GetXScale ()<span class="keyword"> const</span>+00097 <span class="keyword"> </span>{+00098 <span class="keywordflow">return</span> m_xScale;+00099 }+00100 +<a name="l00105"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#a4">00105</a> <span class="keywordtype">double</span> GetYScale ()<span class="keyword"> const</span>+00106 <span class="keyword"> </span>{+00107 <span class="keywordflow">return</span> m_yScale;+00108 }+00109 +<a name="l00114"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#a5">00114</a> <span class="keywordtype">double</span> GetZScale ()<span class="keyword"> const</span>+00115 <span class="keyword"> </span>{+00116 <span class="keywordflow">return</span> m_zScale;+00117 }+00118 +<a name="l00126"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#a6">00126</a> <span class="keywordtype">void</span> SetScale (<span class="keywordtype">double</span> scale)+00127 {+00128 m_xScale = scale;+00129 m_yScale = scale;+00130 m_zScale = scale;+00131 }+00132 +<a name="l00143"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#a7">00143</a> <span class="keywordtype">void</span> SetScale (<span class="keywordtype">double</span> xScale, <span class="keywordtype">double</span> yScale, <span class="keywordtype">double</span> zScale)+00144 {+00145 m_xScale = xScale;+00146 m_yScale = yScale;+00147 m_zScale = zScale;+00148 }+00149 +<a name="l00158"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#a8">00158</a> <span class="keywordtype">void</span> SetXScale (<span class="keywordtype">double</span> xScale)+00159 {+00160 m_xScale = xScale;+00161 }+00162 +<a name="l00171"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#a9">00171</a> <span class="keywordtype">void</span> SetYScale (<span class="keywordtype">double</span> yScale)+00172 {+00173 m_yScale = yScale;+00174 }+00175 +<a name="l00184"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#a10">00184</a> <span class="keywordtype">void</span> SetZScale (<span class="keywordtype">double</span> zScale)+00185 {+00186 m_zScale = zScale;+00187 }+00188 +00189 <span class="keyword">protected</span>:+00190 +<a name="l00192"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#p0">00192</a> <span class="keywordtype">double</span> m_xScale;+00193 +<a name="l00195"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#p1">00195</a> <span class="keywordtype">double</span> m_yScale;+00196 +<a name="l00198"></a><a class="code" href="classnoise_1_1module_1_1ScalePoint.html#p2">00198</a> <span class="keywordtype">double</span> m_zScale;+00199 +00200 };+00201 +00203 +00205 +00207 +00208 }+00209 +00210 }+00211 +00212 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,229 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>select.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// select.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_SELECT_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_SELECT_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00044"></a><a class="code" href="group__selectormodules.html#ga0">00044</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_SELECT_EDGE_FALLOFF = 0.0;+00045 +<a name="l00048"></a><a class="code" href="group__selectormodules.html#ga1">00048</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_SELECT_LOWER_BOUND = -1.0;+00049 +<a name="l00052"></a><a class="code" href="group__selectormodules.html#ga2">00052</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_SELECT_UPPER_BOUND = 1.0;+00053 +<a name="l00084"></a><a class="code" href="classnoise_1_1module_1_1Select.html">00084</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Select.html">Select</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00085 {+00086 +00087 <span class="keyword">public</span>:+00088 +00099 <a class="code" href="classnoise_1_1module_1_1Select.html">Select</a> ();+00100 +<a name="l00117"></a><a class="code" href="classnoise_1_1module_1_1Select.html#a1">00117</a> <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& GetControlModule ()<span class="keyword"> const</span>+00118 <span class="keyword"> </span>{+00119 <span class="keywordflow">if</span> (m_pSourceModule == NULL || m_pSourceModule[2] == NULL) {+00120 <span class="keywordflow">throw</span> <a class="code" href="classnoise_1_1ExceptionNoModule.html">noise::ExceptionNoModule</a> ();+00121 }+00122 <span class="keywordflow">return</span> *(m_pSourceModule[2]);+00123 }+00124 +<a name="l00135"></a><a class="code" href="classnoise_1_1module_1_1Select.html#a2">00135</a> <span class="keywordtype">double</span> GetEdgeFalloff ()<span class="keyword"> const</span>+00136 <span class="keyword"> </span>{+00137 <span class="keywordflow">return</span> m_edgeFalloff;+00138 }+00139 +<a name="l00148"></a><a class="code" href="classnoise_1_1module_1_1Select.html#a3">00148</a> <span class="keywordtype">double</span> GetLowerBound ()<span class="keyword"> const</span>+00149 <span class="keyword"> </span>{+00150 <span class="keywordflow">return</span> m_lowerBound;+00151 }+00152 +<a name="l00153"></a><a class="code" href="classnoise_1_1module_1_1Select.html#a4">00153</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00154 <span class="keyword"> </span>{+00155 <span class="keywordflow">return</span> 3;+00156 }+00157 +<a name="l00166"></a><a class="code" href="classnoise_1_1module_1_1Select.html#a5">00166</a> <span class="keywordtype">double</span> GetUpperBound ()<span class="keyword"> const</span>+00167 <span class="keyword"> </span>{+00168 <span class="keywordflow">return</span> m_upperBound;+00169 }+00170 +00171 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00172 +00188 <span class="keywordtype">void</span> SetBounds (<span class="keywordtype">double</span> lowerBound, <span class="keywordtype">double</span> upperBound);+00189 +<a name="l00209"></a><a class="code" href="classnoise_1_1module_1_1Select.html#a8">00209</a> <span class="keywordtype">void</span> SetControlModule (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>& controlModule)+00210 {+00211 assert (m_pSourceModule != NULL);+00212 m_pSourceModule[2] = &controlModule;+00213 }+00214 +00242 <span class="keywordtype">void</span> SetEdgeFalloff (<span class="keywordtype">double</span> edgeFalloff);+00243 +00244 <span class="keyword">protected</span>:+00245 +<a name="l00247"></a><a class="code" href="classnoise_1_1module_1_1Select.html#p0">00247</a> <span class="keywordtype">double</span> m_edgeFalloff;+00248 +<a name="l00250"></a><a class="code" href="classnoise_1_1module_1_1Select.html#p1">00250</a> <span class="keywordtype">double</span> m_lowerBound;+00251 +<a name="l00253"></a><a class="code" href="classnoise_1_1module_1_1Select.html#p2">00253</a> <span class="keywordtype">double</span> m_upperBound;+00254 +00255 };+00256 +00258 +00260 +00262 +00263 }+00264 +00265 }+00266 +00267 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,193 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000002.html">model</a></div>+<h1>sphere.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// sphere.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODEL_SPHERE_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODEL_SPHERE_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include <assert.h></span>+00027 <span class="preprocessor">#include "../module/modulebase.h"</span>+00028 +00029 <span class="keyword">namespace </span>noise+00030 {+00031 +00032 <span class="keyword">namespace </span>model+00033 {+00034 +00037 +00040 +<a name="l00057"></a><a class="code" href="classnoise_1_1model_1_1Sphere.html">00057</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1model_1_1Sphere.html">Sphere</a>+00058 {+00059 +00060 <span class="keyword">public</span>:+00061 +00063 <a class="code" href="classnoise_1_1model_1_1Sphere.html">Sphere</a> ();+00064 +00069 <a class="code" href="classnoise_1_1model_1_1Sphere.html">Sphere</a> (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& module);+00070 +<a name="l00077"></a><a class="code" href="classnoise_1_1model_1_1Sphere.html#a2">00077</a> <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& GetModule ()<span class="keyword"> const</span>+00078 <span class="keyword"> </span>{+00079 assert (m_pModule != NULL);+00080 <span class="keywordflow">return</span> *m_pModule;+00081 }+00082 +00102 <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> lat, <span class="keywordtype">double</span> lon) <span class="keyword">const</span>;+00103 +<a name="l00111"></a><a class="code" href="classnoise_1_1model_1_1Sphere.html#a4">00111</a> <span class="keywordtype">void</span> SetModule (<span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>& module)+00112 {+00113 m_pModule = &module;+00114 }+00115 +00116 <span class="keyword">private</span>:+00117 +00119 <span class="keyword">const</span> <a class="code" href="classnoise_1_1module_1_1Module.html">module::Module</a>* m_pModule;+00120 +00121 };+00122 +00124 +00126 +00127 }+00128 +00129 }+00130 +00131 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,198 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>spheres.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// spheres.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_SPHERES_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_SPHERES_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00044"></a><a class="code" href="group__generatormodules.html#ga22">00044</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_SPHERES_FREQUENCY = 1.0;+00045 +<a name="l00070"></a><a class="code" href="classnoise_1_1module_1_1Spheres.html">00070</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Spheres.html">Spheres</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00071 {+00072 +00073 <span class="keyword">public</span>:+00074 +00079 <a class="code" href="classnoise_1_1module_1_1Spheres.html">Spheres</a> ();+00080 +<a name="l00087"></a><a class="code" href="classnoise_1_1module_1_1Spheres.html#a1">00087</a> <span class="keywordtype">double</span> GetFrequency ()<span class="keyword"> const</span>+00088 <span class="keyword"> </span>{+00089 <span class="keywordflow">return</span> m_frequency;+00090 }+00091 +<a name="l00092"></a><a class="code" href="classnoise_1_1module_1_1Spheres.html#a2">00092</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00093 <span class="keyword"> </span>{+00094 <span class="keywordflow">return</span> 0;+00095 }+00096 +00097 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00098 +<a name="l00105"></a><a class="code" href="classnoise_1_1module_1_1Spheres.html#a4">00105</a> <span class="keywordtype">void</span> SetFrequency (<span class="keywordtype">double</span> frequency)+00106 {+00107 m_frequency = frequency;+00108 }+00109 +00110 <span class="keyword">protected</span>:+00111 +<a name="l00113"></a><a class="code" href="classnoise_1_1module_1_1Spheres.html#p0">00113</a> <span class="keywordtype">double</span> m_frequency;+00114 +00115 };+00116 +00118 +00120 +00122 +00123 }+00124 +00125 }+00126 +00127 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,123 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::ControlPoint Member List</h1>This is the complete list of members for <a class="el" href="structnoise_1_1module_1_1ControlPoint.html">noise::module::ControlPoint</a>, including all inherited members.<p><table>+ <tr class="memlist"><td><a class="el" href="structnoise_1_1module_1_1ControlPoint.html#o0">inputValue</a></td><td><a class="el" href="structnoise_1_1module_1_1ControlPoint.html">noise::module::ControlPoint</a></td><td></td></tr>+ <tr class="memlist"><td><a class="el" href="structnoise_1_1module_1_1ControlPoint.html#o1">outputValue</a></td><td><a class="el" href="structnoise_1_1module_1_1ControlPoint.html">noise::module::ControlPoint</a></td><td></td></tr>+</table><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,144 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<h1>noise::module::ControlPoint Struct Reference<br>+<small>+[<a class="el" href="group__libnoise.html">libnoise</a>]</small>+</h1><code>#include <<a class="el" href="curve_8h-source.html">curve.h</a>></code>+<p>+<a href="structnoise_1_1module_1_1ControlPoint-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>+This structure defines a control point. +<p>+Control points are used for defining splines. +<p>+<table border="0" cellpadding="0" cellspacing="0">+<tr><td></td></tr>+<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="o0" doxytag="noise::module::ControlPoint::inputValue"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="structnoise_1_1module_1_1ControlPoint.html#o0">inputValue</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">The input value. <br></td></tr>+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="o1" doxytag="noise::module::ControlPoint::outputValue"></a>+double </td><td class="memItemRight" valign="bottom"><a class="el" href="structnoise_1_1module_1_1ControlPoint.html#o1">outputValue</a></td></tr>++<tr><td class="mdescLeft"> </td><td class="mdescRight">The output value that is mapped from the input value. <br></td></tr>+</table>+<hr>The documentation for this struct was generated from the following file:<ul>+<li><a class="el" href="curve_8h-source.html">curve.h</a></ul>+<!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 3958 bytes)
@@ -0,0 +1,222 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>terrace.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// terrace.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_TERRACE_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_TERRACE_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00073"></a><a class="code" href="classnoise_1_1module_1_1Terrace.html">00073</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Terrace.html">Terrace</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00074 {+00075 +00076 <span class="keyword">public</span>:+00077 +00079 <a class="code" href="classnoise_1_1module_1_1Terrace.html">Terrace</a> ();+00080 +00082 ~<a class="code" href="classnoise_1_1module_1_1Terrace.html">Terrace</a> ();+00083 +00098 <span class="keywordtype">void</span> AddControlPoint (<span class="keywordtype">double</span> value);+00099 +00103 <span class="keywordtype">void</span> ClearAllControlPoints ();+00104 +<a name="l00121"></a><a class="code" href="classnoise_1_1module_1_1Terrace.html#a4">00121</a> <span class="keyword">const</span> <span class="keywordtype">double</span>* GetControlPointArray ()<span class="keyword"> const</span>+00122 <span class="keyword"> </span>{+00123 <span class="keywordflow">return</span> m_pControlPoints;+00124 }+00125 +<a name="l00130"></a><a class="code" href="classnoise_1_1module_1_1Terrace.html#a5">00130</a> <span class="keywordtype">int</span> GetControlPointCount ()<span class="keyword"> const</span>+00131 <span class="keyword"> </span>{+00132 <span class="keywordflow">return</span> m_controlPointCount;+00133 }+00134 +<a name="l00135"></a><a class="code" href="classnoise_1_1module_1_1Terrace.html#a6">00135</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00136 <span class="keyword"> </span>{+00137 <span class="keywordflow">return</span> 1;+00138 }+00139 +<a name="l00145"></a><a class="code" href="classnoise_1_1module_1_1Terrace.html#a7">00145</a> <span class="keywordtype">void</span> InvertTerraces (<span class="keywordtype">bool</span> invert = <span class="keyword">true</span>)+00146 {+00147 m_invertTerraces = invert;+00148 }+00149 +<a name="l00157"></a><a class="code" href="classnoise_1_1module_1_1Terrace.html#a8">00157</a> <span class="keywordtype">bool</span> IsTerracesInverted ()<span class="keyword"> const</span>+00158 <span class="keyword"> </span>{+00159 <span class="keywordflow">return</span> m_invertTerraces;+00160 }+00161 +00162 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00163 +00181 <span class="keywordtype">void</span> MakeControlPoints (<span class="keywordtype">int</span> controlPointCount);+00182 +00183 <span class="keyword">protected</span>:+00184 +00201 <span class="keywordtype">int</span> FindInsertionPos (<span class="keywordtype">double</span> value);+00202 +00218 <span class="keywordtype">void</span> InsertAtPos (<span class="keywordtype">int</span> insertionPos, <span class="keywordtype">double</span> value);+00219 +<a name="l00221"></a><a class="code" href="classnoise_1_1module_1_1Terrace.html#p0">00221</a> <span class="keywordtype">int</span> m_controlPointCount;+00222 +<a name="l00225"></a><a class="code" href="classnoise_1_1module_1_1Terrace.html#p1">00225</a> <span class="keywordtype">bool</span> m_invertTerraces;+00226 +<a name="l00228"></a><a class="code" href="classnoise_1_1module_1_1Terrace.html#p2">00228</a> <span class="keywordtype">double</span>* m_pControlPoints;+00229 +00230 };+00231 +00233 +00235 +00237 +00238 }+00239 +00240 }+00241 +00242 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,241 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>translatepoint.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// translatepoint.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_TRANSLATEPOINT_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_TRANSLATEPOINT_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00045"></a><a class="code" href="group__transformermodules.html#ga6">00045</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_TRANSLATE_POINT_X = 0.0;+00046 +<a name="l00049"></a><a class="code" href="group__transformermodules.html#ga7">00049</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_TRANSLATE_POINT_Y = 0.0;+00050 +<a name="l00053"></a><a class="code" href="group__transformermodules.html#ga8">00053</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_TRANSLATE_POINT_Z = 0.0;+00054 +<a name="l00069"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html">00069</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html">TranslatePoint</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00070 {+00071 +00072 <span class="keyword">public</span>:+00073 +00084 <a class="code" href="classnoise_1_1module_1_1TranslatePoint.html">TranslatePoint</a> ();+00085 +<a name="l00086"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#a1">00086</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00087 <span class="keyword"> </span>{+00088 <span class="keywordflow">return</span> 1;+00089 }+00090 +00091 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00092 +<a name="l00097"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#a3">00097</a> <span class="keywordtype">double</span> GetXTranslation ()<span class="keyword"> const</span>+00098 <span class="keyword"> </span>{+00099 <span class="keywordflow">return</span> m_xTranslation;+00100 }+00101 +<a name="l00106"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#a4">00106</a> <span class="keywordtype">double</span> GetYTranslation ()<span class="keyword"> const</span>+00107 <span class="keyword"> </span>{+00108 <span class="keywordflow">return</span> m_yTranslation;+00109 }+00110 +<a name="l00115"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#a5">00115</a> <span class="keywordtype">double</span> GetZTranslation ()<span class="keyword"> const</span>+00116 <span class="keyword"> </span>{+00117 <span class="keywordflow">return</span> m_zTranslation;+00118 }+00119 +<a name="l00127"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#a6">00127</a> <span class="keywordtype">void</span> SetTranslation (<span class="keywordtype">double</span> translation)+00128 {+00129 m_xTranslation = translation;+00130 m_yTranslation = translation;+00131 m_zTranslation = translation;+00132 }+00133 +<a name="l00147"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#a7">00147</a> <span class="keywordtype">void</span> SetTranslation (<span class="keywordtype">double</span> xTranslation, <span class="keywordtype">double</span> yTranslation,+00148 <span class="keywordtype">double</span> zTranslation)+00149 {+00150 m_xTranslation = xTranslation;+00151 m_yTranslation = yTranslation;+00152 m_zTranslation = zTranslation;+00153 }+00154 +<a name="l00164"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#a8">00164</a> <span class="keywordtype">void</span> SetXTranslation (<span class="keywordtype">double</span> xTranslation)+00165 {+00166 m_xTranslation = xTranslation;+00167 }+00168 +<a name="l00178"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#a9">00178</a> <span class="keywordtype">void</span> SetYTranslation (<span class="keywordtype">double</span> yTranslation)+00179 {+00180 m_yTranslation = yTranslation;+00181 }+00182 +<a name="l00192"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#a10">00192</a> <span class="keywordtype">void</span> SetZTranslation (<span class="keywordtype">double</span> zTranslation)+00193 {+00194 m_zTranslation = zTranslation;+00195 }+00196 +00197 <span class="keyword">protected</span>:+00198 +<a name="l00201"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#p0">00201</a> <span class="keywordtype">double</span> m_xTranslation;+00202 +<a name="l00205"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#p1">00205</a> <span class="keywordtype">double</span> m_yTranslation;+00206 +<a name="l00209"></a><a class="code" href="classnoise_1_1module_1_1TranslatePoint.html#p2">00209</a> <span class="keywordtype">double</span> m_zTranslation;+00210 +00211 };+00212 +00214 +00216 +00218 +00219 }+00220 +00221 }+00222 +00223 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,237 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>turbulence.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// turbulence.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_TURBULENCE_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_TURBULENCE_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "perlin.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module +00032 {+00033 +00036 +00039 +00042 +<a name="l00044"></a><a class="code" href="group__transformermodules.html#ga9">00044</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_TURBULENCE_FREQUENCY = DEFAULT_PERLIN_FREQUENCY;+00045 +<a name="l00047"></a><a class="code" href="group__transformermodules.html#ga10">00047</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_TURBULENCE_POWER = 1.0;+00048 +<a name="l00050"></a><a class="code" href="group__transformermodules.html#ga11">00050</a> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_TURBULENCE_ROUGHNESS = 3;+00051 +<a name="l00053"></a><a class="code" href="group__transformermodules.html#ga12">00053</a> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_TURBULENCE_SEED = DEFAULT_PERLIN_SEED;+00054 +<a name="l00113"></a><a class="code" href="classnoise_1_1module_1_1Turbulence.html">00113</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Turbulence.html">Turbulence</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00114 {+00115 +00116 <span class="keyword">public</span>:+00117 +00131 <a class="code" href="classnoise_1_1module_1_1Turbulence.html">Turbulence</a> ();+00132 +00139 <span class="keywordtype">double</span> GetFrequency () <span class="keyword">const</span>;+00140 +<a name="l00147"></a><a class="code" href="classnoise_1_1module_1_1Turbulence.html#a2">00147</a> <span class="keywordtype">double</span> GetPower ()<span class="keyword"> const</span>+00148 <span class="keyword"> </span>{+00149 <span class="keywordflow">return</span> m_power;+00150 }+00151 +<a name="l00160"></a><a class="code" href="classnoise_1_1module_1_1Turbulence.html#a3">00160</a> <span class="keywordtype">int</span> GetRoughnessCount ()<span class="keyword"> const</span>+00161 <span class="keyword"> </span>{+00162 <span class="keywordflow">return</span> m_xDistortModule.GetOctaveCount ();+00163 }+00164 +00173 <span class="keywordtype">int</span> GetSeed () <span class="keyword">const</span>;+00174 +<a name="l00175"></a><a class="code" href="classnoise_1_1module_1_1Turbulence.html#a5">00175</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00176 <span class="keyword"> </span>{+00177 <span class="keywordflow">return</span> 1;+00178 }+00179 +00180 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00181 +<a name="l00188"></a><a class="code" href="classnoise_1_1module_1_1Turbulence.html#a7">00188</a> <span class="keywordtype">void</span> SetFrequency (<span class="keywordtype">double</span> frequency)+00189 {+00190 <span class="comment">// Set the frequency of each Perlin-noise module.</span>+00191 m_xDistortModule.SetFrequency (frequency);+00192 m_yDistortModule.SetFrequency (frequency);+00193 m_zDistortModule.SetFrequency (frequency);+00194 }+00195 +<a name="l00202"></a><a class="code" href="classnoise_1_1module_1_1Turbulence.html#a8">00202</a> <span class="keywordtype">void</span> SetPower (<span class="keywordtype">double</span> power)+00203 {+00204 m_power = power;+00205 }+00206 +<a name="l00221"></a><a class="code" href="classnoise_1_1module_1_1Turbulence.html#a9">00221</a> <span class="keywordtype">void</span> SetRoughness (<span class="keywordtype">int</span> roughness)+00222 {+00223 <span class="comment">// Set the octave count for each Perlin-noise module.</span>+00224 m_xDistortModule.SetOctaveCount (roughness);+00225 m_yDistortModule.SetOctaveCount (roughness);+00226 m_zDistortModule.SetOctaveCount (roughness);+00227 }+00228 +00241 <span class="keywordtype">void</span> SetSeed (<span class="keywordtype">int</span> seed);+00242 +00243 <span class="keyword">protected</span>:+00244 +<a name="l00246"></a><a class="code" href="classnoise_1_1module_1_1Turbulence.html#p0">00246</a> <span class="keywordtype">double</span> m_power;+00247 +<a name="l00249"></a><a class="code" href="classnoise_1_1module_1_1Turbulence.html#p1">00249</a> <a class="code" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> m_xDistortModule;+00250 +<a name="l00252"></a><a class="code" href="classnoise_1_1module_1_1Turbulence.html#p2">00252</a> <a class="code" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> m_yDistortModule;+00253 +<a name="l00255"></a><a class="code" href="classnoise_1_1module_1_1Turbulence.html#p3">00255</a> <a class="code" href="classnoise_1_1module_1_1Perlin.html">Perlin</a> m_zDistortModule;+00256 +00257 };+00258 +00260 +00262 +00264 +00265 }+00266 +00267 }+00268 +00269 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,412 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a></div>+<h1>vectortable.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// vectortable.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Written by Jason Bevins. Actually it's the output of a program written</span>+00004 <span class="comment">// by me. I'm not going to copyright a bunch of random numbers (although</span>+00005 <span class="comment">// you could probably do so in the States, the way things are going down</span>+00006 <span class="comment">// there :-)</span>+00007 <span class="comment">//</span>+00008 <span class="comment">// This file is in the public domain.</span>+00009 <span class="comment">//</span>+00010 +00011 <span class="preprocessor">#ifndef NOISE_VECTORTABLE_H</span>+00012 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_VECTORTABLE_H</span>+00013 <span class="preprocessor"></span>+00014 <span class="preprocessor">#ifndef DOXYGEN_SHOULD_SKIP_THIS</span>+00015 <span class="preprocessor"></span>+00016 <span class="keyword">namespace </span>noise+00017 {+00018 +00019 <span class="comment">// A table of 256 random normalized vectors. Each row is an (x, y, z, 0)</span>+00020 <span class="comment">// coordinate. The 0 is used as padding so we can use bit shifts to index</span>+00021 <span class="comment">// any row in the table. These vectors have an even statistical</span>+00022 <span class="comment">// distribution, which improves the quality of the coherent noise</span>+00023 <span class="comment">// generated by these vectors. For more information, see "GPU Gems",</span>+00024 <span class="comment">// Chapter 5 - Implementing Improved Perlin Noise by Ken Perlin,</span>+00025 <span class="comment">// specifically page 76.</span>+00026 <span class="keywordtype">double</span> g_randomVectors[256 * 4] =+00027 {+00028 -0.763874, -0.596439, -0.246489, 0.0,+00029 0.396055, 0.904518, -0.158073, 0.0,+00030 -0.499004, -0.8665, -0.0131631, 0.0,+00031 0.468724, -0.824756, 0.316346, 0.0,+00032 0.829598, 0.43195, 0.353816, 0.0,+00033 -0.454473, 0.629497, -0.630228, 0.0,+00034 -0.162349, -0.869962, -0.465628, 0.0,+00035 0.932805, 0.253451, 0.256198, 0.0,+00036 -0.345419, 0.927299, -0.144227, 0.0,+00037 -0.715026, -0.293698, -0.634413, 0.0,+00038 -0.245997, 0.717467, -0.651711, 0.0,+00039 -0.967409, -0.250435, -0.037451, 0.0,+00040 0.901729, 0.397108, -0.170852, 0.0,+00041 0.892657, -0.0720622, -0.444938, 0.0,+00042 0.0260084, -0.0361701, 0.999007, 0.0,+00043 0.949107, -0.19486, 0.247439, 0.0,+00044 0.471803, -0.807064, -0.355036, 0.0,+00045 0.879737, 0.141845, 0.453809, 0.0,+00046 0.570747, 0.696415, 0.435033, 0.0,+00047 -0.141751, -0.988233, -0.0574584, 0.0,+00048 -0.58219, -0.0303005, 0.812488, 0.0,+00049 -0.60922, 0.239482, -0.755975, 0.0,+00050 0.299394, -0.197066, -0.933557, 0.0,+00051 -0.851615, -0.220702, -0.47544, 0.0,+00052 0.848886, 0.341829, -0.403169, 0.0,+00053 -0.156129, -0.687241, 0.709453, 0.0,+00054 -0.665651, 0.626724, 0.405124, 0.0,+00055 0.595914, -0.674582, 0.43569, 0.0,+00056 0.171025, -0.509292, 0.843428, 0.0,+00057 0.78605, 0.536414, -0.307222, 0.0,+00058 0.18905, -0.791613, 0.581042, 0.0,+00059 -0.294916, 0.844994, 0.446105, 0.0,+00060 0.342031, -0.58736, -0.7335, 0.0,+00061 0.57155, 0.7869, 0.232635, 0.0,+00062 0.885026, -0.408223, 0.223791, 0.0,+00063 -0.789518, 0.571645, 0.223347, 0.0,+00064 0.774571, 0.31566, 0.548087, 0.0,+00065 -0.79695, -0.0433603, -0.602487, 0.0,+00066 -0.142425, -0.473249, -0.869339, 0.0,+00067 -0.0698838, 0.170442, 0.982886, 0.0,+00068 0.687815, -0.484748, 0.540306, 0.0,+00069 0.543703, -0.534446, -0.647112, 0.0,+00070 0.97186, 0.184391, -0.146588, 0.0,+00071 0.707084, 0.485713, -0.513921, 0.0,+00072 0.942302, 0.331945, 0.043348, 0.0,+00073 0.499084, 0.599922, 0.625307, 0.0,+00074 -0.289203, 0.211107, 0.9337, 0.0,+00075 0.412433, -0.71667, -0.56239, 0.0,+00076 0.87721, -0.082816, 0.47291, 0.0,+00077 -0.420685, -0.214278, 0.881538, 0.0,+00078 0.752558, -0.0391579, 0.657361, 0.0,+00079 0.0765725, -0.996789, 0.0234082, 0.0,+00080 -0.544312, -0.309435, -0.779727, 0.0,+00081 -0.455358, -0.415572, 0.787368, 0.0,+00082 -0.874586, 0.483746, 0.0330131, 0.0,+00083 0.245172, -0.0838623, 0.965846, 0.0,+00084 0.382293, -0.432813, 0.81641, 0.0,+00085 -0.287735, -0.905514, 0.311853, 0.0,+00086 -0.667704, 0.704955, -0.239186, 0.0,+00087 0.717885, -0.464002, -0.518983, 0.0,+00088 0.976342, -0.214895, 0.0240053, 0.0,+00089 -0.0733096, -0.921136, 0.382276, 0.0,+00090 -0.986284, 0.151224, -0.0661379, 0.0,+00091 -0.899319, -0.429671, 0.0812908, 0.0,+00092 0.652102, -0.724625, 0.222893, 0.0,+00093 0.203761, 0.458023, -0.865272, 0.0,+00094 -0.030396, 0.698724, -0.714745, 0.0,+00095 -0.460232, 0.839138, 0.289887, 0.0,+00096 -0.0898602, 0.837894, 0.538386, 0.0,+00097 -0.731595, 0.0793784, 0.677102, 0.0,+00098 -0.447236, -0.788397, 0.422386, 0.0,+00099 0.186481, 0.645855, -0.740335, 0.0,+00100 -0.259006, 0.935463, 0.240467, 0.0,+00101 0.445839, 0.819655, -0.359712, 0.0,+00102 0.349962, 0.755022, -0.554499, 0.0,+00103 -0.997078, -0.0359577, 0.0673977, 0.0,+00104 -0.431163, -0.147516, -0.890133, 0.0,+00105 0.299648, -0.63914, 0.708316, 0.0,+00106 0.397043, 0.566526, -0.722084, 0.0,+00107 -0.502489, 0.438308, -0.745246, 0.0,+00108 0.0687235, 0.354097, 0.93268, 0.0,+00109 -0.0476651, -0.462597, 0.885286, 0.0,+00110 -0.221934, 0.900739, -0.373383, 0.0,+00111 -0.956107, -0.225676, 0.186893, 0.0,+00112 -0.187627, 0.391487, -0.900852, 0.0,+00113 -0.224209, -0.315405, 0.92209, 0.0,+00114 -0.730807, -0.537068, 0.421283, 0.0,+00115 -0.0353135, -0.816748, 0.575913, 0.0,+00116 -0.941391, 0.176991, -0.287153, 0.0,+00117 -0.154174, 0.390458, 0.90762, 0.0,+00118 -0.283847, 0.533842, 0.796519, 0.0,+00119 -0.482737, -0.850448, 0.209052, 0.0,+00120 -0.649175, 0.477748, 0.591886, 0.0,+00121 0.885373, -0.405387, -0.227543, 0.0,+00122 -0.147261, 0.181623, -0.972279, 0.0,+00123 0.0959236, -0.115847, -0.988624, 0.0,+00124 -0.89724, -0.191348, 0.397928, 0.0,+00125 0.903553, -0.428461, -0.00350461, 0.0,+00126 0.849072, -0.295807, -0.437693, 0.0,+00127 0.65551, 0.741754, -0.141804, 0.0,+00128 0.61598, -0.178669, 0.767232, 0.0,+00129 0.0112967, 0.932256, -0.361623, 0.0,+00130 -0.793031, 0.258012, 0.551845, 0.0,+00131 0.421933, 0.454311, 0.784585, 0.0,+00132 -0.319993, 0.0401618, -0.946568, 0.0,+00133 -0.81571, 0.551307, -0.175151, 0.0,+00134 -0.377644, 0.00322313, 0.925945, 0.0,+00135 0.129759, -0.666581, -0.734052, 0.0,+00136 0.601901, -0.654237, -0.457919, 0.0,+00137 -0.927463, -0.0343576, -0.372334, 0.0,+00138 -0.438663, -0.868301, -0.231578, 0.0,+00139 -0.648845, -0.749138, -0.133387, 0.0,+00140 0.507393, -0.588294, 0.629653, 0.0,+00141 0.726958, 0.623665, 0.287358, 0.0,+00142 0.411159, 0.367614, -0.834151, 0.0,+00143 0.806333, 0.585117, -0.0864016, 0.0,+00144 0.263935, -0.880876, 0.392932, 0.0,+00145 0.421546, -0.201336, 0.884174, 0.0,+00146 -0.683198, -0.569557, -0.456996, 0.0,+00147 -0.117116, -0.0406654, -0.992285, 0.0,+00148 -0.643679, -0.109196, -0.757465, 0.0,+00149 -0.561559, -0.62989, 0.536554, 0.0,+00150 0.0628422, 0.104677, -0.992519, 0.0,+00151 0.480759, -0.2867, -0.828658, 0.0,+00152 -0.228559, -0.228965, -0.946222, 0.0,+00153 -0.10194, -0.65706, -0.746914, 0.0,+00154 0.0689193, -0.678236, 0.731605, 0.0,+00155 0.401019, -0.754026, 0.52022, 0.0,+00156 -0.742141, 0.547083, -0.387203, 0.0,+00157 -0.00210603, -0.796417, -0.604745, 0.0,+00158 0.296725, -0.409909, -0.862513, 0.0,+00159 -0.260932, -0.798201, 0.542945, 0.0,+00160 -0.641628, 0.742379, 0.192838, 0.0,+00161 -0.186009, -0.101514, 0.97729, 0.0,+00162 0.106711, -0.962067, 0.251079, 0.0,+00163 -0.743499, 0.30988, -0.592607, 0.0,+00164 -0.795853, -0.605066, -0.0226607, 0.0,+00165 -0.828661, -0.419471, -0.370628, 0.0,+00166 0.0847218, -0.489815, -0.8677, 0.0,+00167 -0.381405, 0.788019, -0.483276, 0.0,+00168 0.282042, -0.953394, 0.107205, 0.0,+00169 0.530774, 0.847413, 0.0130696, 0.0,+00170 0.0515397, 0.922524, 0.382484, 0.0,+00171 -0.631467, -0.709046, 0.313852, 0.0,+00172 0.688248, 0.517273, 0.508668, 0.0,+00173 0.646689, -0.333782, -0.685845, 0.0,+00174 -0.932528, -0.247532, -0.262906, 0.0,+00175 0.630609, 0.68757, -0.359973, 0.0,+00176 0.577805, -0.394189, 0.714673, 0.0,+00177 -0.887833, -0.437301, -0.14325, 0.0,+00178 0.690982, 0.174003, 0.701617, 0.0,+00179 -0.866701, 0.0118182, 0.498689, 0.0,+00180 -0.482876, 0.727143, 0.487949, 0.0,+00181 -0.577567, 0.682593, -0.447752, 0.0,+00182 0.373768, 0.0982991, 0.922299, 0.0,+00183 0.170744, 0.964243, -0.202687, 0.0,+00184 0.993654, -0.035791, -0.106632, 0.0,+00185 0.587065, 0.4143, -0.695493, 0.0,+00186 -0.396509, 0.26509, -0.878924, 0.0,+00187 -0.0866853, 0.83553, -0.542563, 0.0,+00188 0.923193, 0.133398, -0.360443, 0.0,+00189 0.00379108, -0.258618, 0.965972, 0.0,+00190 0.239144, 0.245154, -0.939526, 0.0,+00191 0.758731, -0.555871, 0.33961, 0.0,+00192 0.295355, 0.309513, 0.903862, 0.0,+00193 0.0531222, -0.91003, -0.411124, 0.0,+00194 0.270452, 0.0229439, -0.96246, 0.0,+00195 0.563634, 0.0324352, 0.825387, 0.0,+00196 0.156326, 0.147392, 0.976646, 0.0,+00197 -0.0410141, 0.981824, 0.185309, 0.0,+00198 -0.385562, -0.576343, -0.720535, 0.0,+00199 0.388281, 0.904441, 0.176702, 0.0,+00200 0.945561, -0.192859, -0.262146, 0.0,+00201 0.844504, 0.520193, 0.127325, 0.0,+00202 0.0330893, 0.999121, -0.0257505, 0.0,+00203 -0.592616, -0.482475, -0.644999, 0.0,+00204 0.539471, 0.631024, -0.557476, 0.0,+00205 0.655851, -0.027319, -0.754396, 0.0,+00206 0.274465, 0.887659, 0.369772, 0.0,+00207 -0.123419, 0.975177, -0.183842, 0.0,+00208 -0.223429, 0.708045, 0.66989, 0.0,+00209 -0.908654, 0.196302, 0.368528, 0.0,+00210 -0.95759, -0.00863708, 0.288005, 0.0,+00211 0.960535, 0.030592, 0.276472, 0.0,+00212 -0.413146, 0.907537, 0.0754161, 0.0,+00213 -0.847992, 0.350849, -0.397259, 0.0,+00214 0.614736, 0.395841, 0.68221, 0.0,+00215 -0.503504, -0.666128, -0.550234, 0.0,+00216 -0.268833, -0.738524, -0.618314, 0.0,+00217 0.792737, -0.60001, -0.107502, 0.0,+00218 -0.637582, 0.508144, -0.579032, 0.0,+00219 0.750105, 0.282165, -0.598101, 0.0,+00220 -0.351199, -0.392294, -0.850155, 0.0,+00221 0.250126, -0.960993, -0.118025, 0.0,+00222 -0.732341, 0.680909, -0.0063274, 0.0,+00223 -0.760674, -0.141009, 0.633634, 0.0,+00224 0.222823, -0.304012, 0.926243, 0.0,+00225 0.209178, 0.505671, 0.836984, 0.0,+00226 0.757914, -0.56629, -0.323857, 0.0,+00227 -0.782926, -0.339196, 0.52151, 0.0,+00228 -0.462952, 0.585565, 0.665424, 0.0,+00229 0.61879, 0.194119, -0.761194, 0.0,+00230 0.741388, -0.276743, 0.611357, 0.0,+00231 0.707571, 0.702621, 0.0752872, 0.0,+00232 0.156562, 0.819977, 0.550569, 0.0,+00233 -0.793606, 0.440216, 0.42, 0.0,+00234 0.234547, 0.885309, -0.401517, 0.0,+00235 0.132598, 0.80115, -0.58359, 0.0,+00236 -0.377899, -0.639179, 0.669808, 0.0,+00237 -0.865993, -0.396465, 0.304748, 0.0,+00238 -0.624815, -0.44283, 0.643046, 0.0,+00239 -0.485705, 0.825614, -0.287146, 0.0,+00240 -0.971788, 0.175535, 0.157529, 0.0,+00241 -0.456027, 0.392629, 0.798675, 0.0,+00242 -0.0104443, 0.521623, -0.853112, 0.0,+00243 -0.660575, -0.74519, 0.091282, 0.0,+00244 -0.0157698, -0.307475, -0.951425, 0.0,+00245 -0.603467, -0.250192, 0.757121, 0.0,+00246 0.506876, 0.25006, 0.824952, 0.0,+00247 0.255404, 0.966794, 0.00884498, 0.0,+00248 0.466764, -0.874228, -0.133625, 0.0,+00249 0.475077, -0.0682351, -0.877295, 0.0,+00250 -0.224967, -0.938972, -0.260233, 0.0,+00251 -0.377929, -0.814757, -0.439705, 0.0,+00252 -0.305847, 0.542333, -0.782517, 0.0,+00253 0.26658, -0.902905, -0.337191, 0.0,+00254 0.0275773, 0.322158, -0.946284, 0.0,+00255 0.0185422, 0.716349, 0.697496, 0.0,+00256 -0.20483, 0.978416, 0.0273371, 0.0,+00257 -0.898276, 0.373969, 0.230752, 0.0,+00258 -0.00909378, 0.546594, 0.837349, 0.0,+00259 0.6602, -0.751089, 0.000959236, 0.0,+00260 0.855301, -0.303056, 0.420259, 0.0,+00261 0.797138, 0.0623013, -0.600574, 0.0,+00262 0.48947, -0.866813, 0.0951509, 0.0,+00263 0.251142, 0.674531, 0.694216, 0.0,+00264 -0.578422, -0.737373, -0.348867, 0.0,+00265 -0.254689, -0.514807, 0.818601, 0.0,+00266 0.374972, 0.761612, 0.528529, 0.0,+00267 0.640303, -0.734271, -0.225517, 0.0,+00268 -0.638076, 0.285527, 0.715075, 0.0,+00269 0.772956, -0.15984, -0.613995, 0.0,+00270 0.798217, -0.590628, 0.118356, 0.0,+00271 -0.986276, -0.0578337, -0.154644, 0.0,+00272 -0.312988, -0.94549, 0.0899272, 0.0,+00273 -0.497338, 0.178325, 0.849032, 0.0,+00274 -0.101136, -0.981014, 0.165477, 0.0,+00275 -0.521688, 0.0553434, -0.851339, 0.0,+00276 -0.786182, -0.583814, 0.202678, 0.0,+00277 -0.565191, 0.821858, -0.0714658, 0.0,+00278 0.437895, 0.152598, -0.885981, 0.0,+00279 -0.92394, 0.353436, -0.14635, 0.0,+00280 0.212189, -0.815162, -0.538969, 0.0,+00281 -0.859262, 0.143405, -0.491024, 0.0,+00282 0.991353, 0.112814, 0.0670273, 0.0,+00283 0.0337884, -0.979891, -0.196654, 0.0+00284 };+00285 +00286 }+00287 +00288 <span class="preprocessor">#endif</span>+00289 <span class="preprocessor"></span>+00290 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
@@ -0,0 +1,238 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"+ "http://www.w3.org/TR/html4/loose.dtd">+<html>+ <head>+ <title>libnoise: Documentation</title>+ <link rel='stylesheet' type='text/css' href='doxygen.css'>+ <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>+ </head>+ <body>+ <table class='layout'>+ <tr>+ <td class='sidebar' rowspan='2'>+ <p>+ Navigation menu+ </p>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/index.html'>Main</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>+ </li>+ </ul>+ </li>+ <li>+ <strong>Docs</strong>+ </li>+ <li>+ <a href='tutorials/index.html'>Tutorials</a>+ <ul class='toc'>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>+ </li>+ </ul>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>+ </li>+ <li>+ <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>+ </li>+ </ul>+ </td>+ <td class='header'>+ <p>+ <img src='libnoise.png' alt='libnoise logo'>+ </p> + <p>+ A portable, open-source, coherent noise-generating library for C+++ </p>+ <hr>+ </td>+ </tr>+ <tr>+ <td class='content'>++<!-- start rich gooey content -->+<!-- Generated by Doxygen 1.3.9.1 -->+<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a></div>+<div class="nav">+<a class="el" href="dir_000000.html">src</a> / <a class="el" href="dir_000001.html">module</a></div>+<h1>voronoi.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">// voronoi.h</span>+00002 <span class="comment">//</span>+00003 <span class="comment">// Copyright (C) 2003, 2004 Jason Bevins</span>+00004 <span class="comment">//</span>+00005 <span class="comment">// This library is free software; you can redistribute it and/or modify it</span>+00006 <span class="comment">// under the terms of the GNU Lesser General Public License as published by</span>+00007 <span class="comment">// the Free Software Foundation; either version 2.1 of the License, or (at</span>+00008 <span class="comment">// your option) any later version.</span>+00009 <span class="comment">//</span>+00010 <span class="comment">// This library is distributed in the hope that it will be useful, but WITHOUT</span>+00011 <span class="comment">// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span>+00012 <span class="comment">// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span>+00013 <span class="comment">// License (COPYING.txt) for more details.</span>+00014 <span class="comment">//</span>+00015 <span class="comment">// You should have received a copy of the GNU Lesser General Public License</span>+00016 <span class="comment">// along with this library; if not, write to the Free Software Foundation,</span>+00017 <span class="comment">// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>+00018 <span class="comment">//</span>+00019 <span class="comment">// The developer's email is jlbezigvins@gmzigail.com (for great email, take</span>+00020 <span class="comment">// off every 'zig'.)</span>+00021 <span class="comment">//</span>+00022 +00023 <span class="preprocessor">#ifndef NOISE_MODULE_VORONOI_H</span>+00024 <span class="preprocessor"></span><span class="preprocessor">#define NOISE_MODULE_VORONOI_H</span>+00025 <span class="preprocessor"></span>+00026 <span class="preprocessor">#include "modulebase.h"</span>+00027 +00028 <span class="keyword">namespace </span>noise+00029 {+00030 +00031 <span class="keyword">namespace </span>module+00032 {+00033 +00036 +00039 +00042 +<a name="l00045"></a><a class="code" href="group__generatormodules.html#ga23">00045</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_VORONOI_DISPLACEMENT = 1.0;+00046 +<a name="l00049"></a><a class="code" href="group__generatormodules.html#ga24">00049</a> <span class="keyword">const</span> <span class="keywordtype">double</span> DEFAULT_VORONOI_FREQUENCY = 1.0;+00050 +<a name="l00053"></a><a class="code" href="group__generatormodules.html#ga25">00053</a> <span class="keyword">const</span> <span class="keywordtype">int</span> DEFAULT_VORONOI_SEED = 0;+00054 +<a name="l00090"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html">00090</a> <span class="keyword">class </span><a class="code" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a>: <span class="keyword">public</span> <a class="code" href="classnoise_1_1module_1_1Module.html">Module</a>+00091 {+00092 +00093 <span class="keyword">public</span>:+00094 +00105 <a class="code" href="classnoise_1_1module_1_1Voronoi.html">Voronoi</a> ();+00106 +<a name="l00119"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#a1">00119</a> <span class="keywordtype">void</span> EnableDistance (<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>)+00120 {+00121 m_enableDistance = enable;+00122 }+00123 +<a name="l00132"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#a2">00132</a> <span class="keywordtype">double</span> GetDisplacement ()<span class="keyword"> const</span>+00133 <span class="keyword"> </span>{+00134 <span class="keywordflow">return</span> m_displacement;+00135 }+00136 +<a name="l00143"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#a3">00143</a> <span class="keywordtype">double</span> GetFrequency ()<span class="keyword"> const</span>+00144 <span class="keyword"> </span>{+00145 <span class="keywordflow">return</span> m_frequency;+00146 }+00147 +<a name="l00148"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#a4">00148</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetSourceModuleCount ()<span class="keyword"> const</span>+00149 <span class="keyword"> </span>{+00150 <span class="keywordflow">return</span> 0;+00151 }+00152 +<a name="l00160"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#a5">00160</a> <span class="keywordtype">int</span> GetSeed ()<span class="keyword"> const</span>+00161 <span class="keyword"> </span>{+00162 <span class="keywordflow">return</span> m_seed;+00163 }+00164 +<a name="l00175"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#a6">00175</a> <span class="keywordtype">bool</span> IsDistanceEnabled ()<span class="keyword"> const</span>+00176 <span class="keyword"> </span>{+00177 <span class="keywordflow">return</span> m_enableDistance;+00178 }+00179 +00180 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue (<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <span class="keyword">const</span>;+00181 +<a name="l00190"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#a8">00190</a> <span class="keywordtype">void</span> SetDisplacement (<span class="keywordtype">double</span> displacement)+00191 {+00192 m_displacement = displacement;+00193 }+00194 +<a name="l00201"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#a9">00201</a> <span class="keywordtype">void</span> SetFrequency (<span class="keywordtype">double</span> frequency)+00202 {+00203 m_frequency = frequency;+00204 }+00205 +<a name="l00213"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#a10">00213</a> <span class="keywordtype">void</span> SetSeed (<span class="keywordtype">int</span> seed)+00214 {+00215 m_seed = seed;+00216 }+00217 +00218 <span class="keyword">protected</span>:+00219 +<a name="l00221"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#p0">00221</a> <span class="keywordtype">double</span> m_displacement;+00222 +<a name="l00225"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#p1">00225</a> <span class="keywordtype">bool</span> m_enableDistance;+00226 +<a name="l00228"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#p2">00228</a> <span class="keywordtype">double</span> m_frequency;+00229 +<a name="l00232"></a><a class="code" href="classnoise_1_1module_1_1Voronoi.html#p3">00232</a> <span class="keywordtype">int</span> m_seed;+00233 +00234 };+00235 +00237 +00239 +00241 +00242 }+00243 +00244 }+00245 +00246 <span class="preprocessor">#endif</span>+</pre></div><!-- end rich gooey content -->++ </td>+ </tr>+ <tr>+ <td class='footer' colspan='2'>+ <p>+ © 2003-2005 Jason Bevins+ </p>+ <p>+ <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>+ <br>+ The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1+ </p>+ </td>+ </tr>+ </table>+ </body>+</html>
binary file changed (absent → 187 bytes)
@@ -0,0 +1,249 @@+body +{ + background-color: #99cccc; + background-image: url(background.png); + display: block; + font-family: verdana,helvetica,sans-serif; + font-size: 10pt; + margin-left: auto; + margin-right: auto; + max-width: 70em; +} + +img +{ + background-color: white; + border-style: none; +} + +span.header +{ + font-weight: bold; +} + +table.layout +{ + border-collapse: collapse; + border-style: none; + border-width: 0px; + margin: 0px; + padding: 0px; + width: 100%; +} + +td.header +{ + background-color: white; + background-repeat: no-repeat; + padding: 6pt; + vertical-align: top; +} + +td.sidebar +{ + background-color: #99cccc; + border-color: #669999; + border-style: none; + border-width: 0px; + padding: 3pt; + vertical-align: top; + width: 18em; + font-size: 8pt; +} + +td.sidebar a:hover +{ + color: red; +} + +td.content +{ + background-color: white; + vertical-align: top; + padding: 6pt; +} + +td.footer +{ + background-color: white; + vertical-align: bottom; +} + +ul.toc +{ + padding-left: 1em; +} + +td.content img +{ + padding: 4pt; +} + +div.fragment +{ + background-color: #ddeeee; + border-color: #996666; + border-style: dashed; + border-width: 1px; + font-family: monospace; + padding: 8pt; + margin: 8pt; + margin-left: 24pt; +} + +td { + font-size: 10pt; +} + + + + + +caption +{ + font-weight: bold +} + +a.qindex +{ +} + +a.qindexRef +{ +} + +a.el +{ + text-decoration: none; + font-weight: bold +} + +a.elRef +{ + font-weight: bold +} + +a.code +{ + text-decoration: none; + font-weight: normal; + color: #4444ee +} + +a.codeRef +{ + font-weight: normal; + color: #4444ee +} + +dl.el +{ + margin-left: -1cm +} + +div.ah +{ + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px +} + +div.groupHeader +{ + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold +} + +div.groupText +{ + margin-left: 16px; + font-style: italic; +} + +td.indexkey +{ + background-color: #ddeeee; + font-weight: bold; + padding-right: 10px; + padding-top: 2px; + padding-left: 10px; + padding-bottom: 2px; + margin-left: 0px; + margin-right: 0px; + margin-top: 2px; + margin-bottom: 2px +} + +td.indexvalue +{ + background-color: #ddeeee; + font-style: italic; + padding-right: 10px; + padding-top: 2px; + padding-left: 10px; + padding-bottom: 2px; + margin-left: 0px; + margin-right: 0px; + margin-top: 2px; + margin-bottom: 2px +} + +td.md +{ + background-color: #ddeeee; + font-weight: bold; +} + +td.mdname1 +{ + background-color: #ddeeee; + font-weight: bold; + color: #602020; +} + +td.mdname +{ + background-color: #ddeeee; + font-weight: bold; + color: #602020; + width: 600px; +} + +span.keyword +{ + color: #008000 +} + +span.keywordtype +{ + color: #604020 +} + +span.keywordflow +{ + color: #e08000 +} + +span.comment +{ + color: #800000 +} + +span.preprocessor +{ + color: #806020 +} + +span.stringliteral +{ + color: #002080 +} + +span.charliteral +{ + color: #008080 +}
binary file changed (absent → 4588 bytes)
@@ -0,0 +1,19 @@+<!-- end rich gooey content --> + + </td> + </tr> + <tr> + <td class='footer' colspan='2'> + <p> + © 2003-2005 Jason Bevins + </p> + <p> + <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a> + <br> + The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1 + </p> + </td> + </tr> + </table> + </body> +</html>
@@ -0,0 +1,99 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html> + <head> + <title>libnoise: Documentation</title> + <link rel='stylesheet' type='text/css' href='doxygen.css'> + <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'> + </head> + <body> + <table class='layout'> + <tr> + <td class='sidebar' rowspan='2'> + <p> + Navigation menu + </p> + <ul class='toc'> + <li> + <a href='http://libnoise.sourceforge.net/index.html'>Main</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a> + <ul class='toc'> + <li> + <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a> + </li> + </ul> + </li> + <li> + <strong>Docs</strong> + </li> + <li> + <a href='tutorials/index.html'>Tutorials</a> + <ul class='toc'> + <li> + <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a> + </li> + </ul> + </li> + <li> + <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a> + </li> + <li> + <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a> + </li> + </ul> + </td> + <td class='header'> + <p> + <img src='libnoise.png' alt='libnoise logo'> + </p> + <p> + A portable, open-source, coherent noise-generating library for C++ + </p> + <hr> + </td> + </tr> + <tr> + <td class='content'> + +<!-- start rich gooey content -->
binary file changed (absent → 3944 bytes)
binary file changed (absent → 2355 bytes)
binary file changed (absent → 29923 bytes)
binary file changed (absent → 17945 bytes)
binary file changed (absent → 17468 bytes)
binary file changed (absent → 25684 bytes)
binary file changed (absent → 11131 bytes)
binary file changed (absent → 37086 bytes)
binary file changed (absent → 767 bytes)
binary file changed (absent → 14611 bytes)
binary file changed (absent → 741 bytes)
binary file changed (absent → 23073 bytes)
binary file changed (absent → 854 bytes)
binary file changed (absent → 5360 bytes)
binary file changed (absent → 20514 bytes)
binary file changed (absent → 17298 bytes)
binary file changed (absent → 18206 bytes)
binary file changed (absent → 19158 bytes)
binary file changed (absent → 34888 bytes)
binary file changed (absent → 12678 bytes)
binary file changed (absent → 26721 bytes)
binary file changed (absent → 10202 bytes)
binary file changed (absent → 20349 bytes)
binary file changed (absent → 19745 bytes)
binary file changed (absent → 18950 bytes)
binary file changed (absent → 30003 bytes)
binary file changed (absent → 5659 bytes)
binary file changed (absent → 21958 bytes)
binary file changed (absent → 9271 bytes)
binary file changed (absent → 17441 bytes)
binary file changed (absent → 3108 bytes)
binary file changed (absent → 3958 bytes)
@@ -0,0 +1,15 @@+Building doco +------------- + +Run doxygen from this directory. + +Copy the following files from the htmldata into the html subdirectory: +- background.png +- doxygen.css +- libnoise.png + +The HTML documentation contains custom headers and footers that require +certain image files to exist in the html subdirectory. I don't know how to +get doxygen to copy these files automagically. + +-- jas
@@ -0,0 +1,14 @@+.PHONY: all here clean +all: here model module + +here: + cp ../src/*.h . +model: + (mkdir $@ && cp ../src/model/*.h $@) +module: + (mkdir $@ && cp ../src/$@/*.h $@) + +clean: + -rm *.h + -rm -rf model + -rm -rf module
@@ -0,0 +1,8 @@+VPATH=../src/ + +.PHONY: all clean +all: libnoise.a libnoise.la libnoise.so.0.3 + -cp $? . + +clean: + -rm libnoise.*
@@ -0,0 +1,432 @@+# Microsoft Developer Studio Project File - Name="libnoise" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 5.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=libnoise - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "libnoise.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "libnoise.mak" CFG="libnoise - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "libnoise - Win32 Release" (based on\ + "Win32 (x86) Dynamic-Link Library") +!MESSAGE "libnoise - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "libnoise - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "win32/Release" +# PROP Intermediate_Dir "win32/Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# SUBTRACT LINK32 /map + +!ELSEIF "$(CFG)" == "libnoise - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "win32/Debug" +# PROP Intermediate_Dir "win32/Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /map /debug /machine:I386 /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "libnoise - Win32 Release" +# Name "libnoise - Win32 Debug" +# Begin Group "modules" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\src\module\abs.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\abs.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\add.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\add.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\billow.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\billow.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\blend.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\blend.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\cache.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\cache.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\checkerboard.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\checkerboard.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\clamp.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\clamp.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\const.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\const.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\curve.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\curve.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\cylinders.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\cylinders.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\displace.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\displace.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\exponent.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\exponent.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\invert.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\invert.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\max.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\max.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\min.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\min.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\module.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\modulebase.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\modulebase.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\multiply.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\multiply.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\perlin.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\perlin.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\power.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\power.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\ridgedmulti.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\ridgedmulti.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\rotatepoint.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\rotatepoint.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\scalebias.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\scalebias.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\scalepoint.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\scalepoint.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\select.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\select.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\spheres.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\spheres.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\terrace.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\terrace.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\translatepoint.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\translatepoint.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\turbulence.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\turbulence.h +# End Source File +# Begin Source File + +SOURCE=.\src\module\voronoi.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\module\voronoi.h +# End Source File +# End Group +# Begin Group "models" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\src\model\cylinder.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\model\cylinder.h +# End Source File +# Begin Source File + +SOURCE=.\src\model\line.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\model\line.h +# End Source File +# Begin Source File + +SOURCE=.\src\model\model.h +# End Source File +# Begin Source File + +SOURCE=.\src\model\plane.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\model\plane.h +# End Source File +# Begin Source File + +SOURCE=.\src\model\sphere.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\model\sphere.h +# End Source File +# End Group +# Begin Group "win32" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\src\win32\dllmain.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\win32\libnoise.def +# End Source File +# Begin Source File + +SOURCE=.\src\win32\noise.rc +# End Source File +# End Group +# Begin Source File + +SOURCE=.\src\basictypes.h +# End Source File +# Begin Source File + +SOURCE=.\src\exception.h +# End Source File +# Begin Source File + +SOURCE=.\src\interp.h +# End Source File +# Begin Source File + +SOURCE=.\src\latlon.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\latlon.h +# End Source File +# Begin Source File + +SOURCE=.\src\mathconsts.h +# End Source File +# Begin Source File + +SOURCE=.\src\misc.h +# End Source File +# Begin Source File + +SOURCE=.\src\noise.h +# End Source File +# Begin Source File + +SOURCE=.\src\noisegen.cpp +# End Source File +# Begin Source File + +SOURCE=.\src\noisegen.h +# End Source File +# Begin Source File + +SOURCE=.\src\vectortable.h +# End Source File +# End Target +# End Project
@@ -0,0 +1,29 @@+Microsoft Developer Studio Workspace File, Format Version 5.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "libnoise"=.\libnoise.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### +
file too large to diff
binary file changed (absent → 49664 bytes)
@@ -0,0 +1,136 @@+--------------------Configuration: libnoise - Win32 Release-------------------- +Begining build with project "C:\dev\src\noise\libnoise.dsp", at root. +Active configuration is Win32 (x86) Dynamic-Link Library (based on Win32 (x86) Dynamic-Link Library) + +Project's tools are: + "32-bit C/C++ Compiler for 80x86" with flags "/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fp"win32/Release/libnoise.pch" /YX /Fo"win32/Release/" /Fd"win32/Release/" /FD /c " + "OLE Type Library Maker" with flags "/nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 " + "Win32 Resource Compiler" with flags "/l 0x409 /fo"win32/Release/noise.res" /d "NDEBUG" " + "Browser Database Maker" with flags "/nologo /o"win32/Release/libnoise.bsc" " + "COFF Linker for 80x86" with flags "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"win32/Release/libnoise.pdb" /machine:I386 /def:".\src\win32\libnoise.def" /out:"win32/Release/libnoise.dll" /implib:"win32/Release/libnoise.lib" " + "Custom Build" with flags "" + "<Component 0xa>" with flags "" + +Creating command line "rc.exe /l 0x409 /fo"win32/Release/noise.res" /i "src\win32" /d "NDEBUG" "C:\dev\src\noise\src\win32\noise.rc"" +Creating temp file "C:\DOCUME~1\jas\LOCALS~1\Temp\RSP2AB7.tmp" with contents </nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fp"win32/Release/libnoise.pch" /YX /Fo"win32/Release/" /Fd"win32/Release/" /FD /c +"C:\dev\src\noise\src\module\abs.cpp" +"C:\dev\src\noise\src\module\add.cpp" +"C:\dev\src\noise\src\module\billow.cpp" +"C:\dev\src\noise\src\module\blend.cpp" +"C:\dev\src\noise\src\module\cache.cpp" +"C:\dev\src\noise\src\module\checkerboard.cpp" +"C:\dev\src\noise\src\module\clamp.cpp" +"C:\dev\src\noise\src\module\const.cpp" +"C:\dev\src\noise\src\module\curve.cpp" +"C:\dev\src\noise\src\module\cylinders.cpp" +"C:\dev\src\noise\src\module\displace.cpp" +"C:\dev\src\noise\src\module\exponent.cpp" +"C:\dev\src\noise\src\module\invert.cpp" +"C:\dev\src\noise\src\module\max.cpp" +"C:\dev\src\noise\src\module\min.cpp" +"C:\dev\src\noise\src\module\modulebase.cpp" +"C:\dev\src\noise\src\module\multiply.cpp" +"C:\dev\src\noise\src\module\perlin.cpp" +"C:\dev\src\noise\src\module\power.cpp" +"C:\dev\src\noise\src\module\ridgedmulti.cpp" +"C:\dev\src\noise\src\module\rotatepoint.cpp" +"C:\dev\src\noise\src\module\scalebias.cpp" +"C:\dev\src\noise\src\module\scalepoint.cpp" +"C:\dev\src\noise\src\module\select.cpp" +"C:\dev\src\noise\src\module\spheres.cpp" +"C:\dev\src\noise\src\module\terrace.cpp" +"C:\dev\src\noise\src\module\translatepoint.cpp" +"C:\dev\src\noise\src\module\turbulence.cpp" +"C:\dev\src\noise\src\module\voronoi.cpp" +"C:\dev\src\noise\src\model\cylinder.cpp" +"C:\dev\src\noise\src\model\line.cpp" +"C:\dev\src\noise\src\model\plane.cpp" +"C:\dev\src\noise\src\model\sphere.cpp" +"C:\dev\src\noise\src\win32\dllmain.cpp" +"C:\dev\src\noise\src\latlon.cpp" +"C:\dev\src\noise\src\noisegen.cpp" +> +Creating command line "cl.exe @C:\DOCUME~1\jas\LOCALS~1\Temp\RSP2AB7.tmp" +Creating temp file "C:\DOCUME~1\jas\LOCALS~1\Temp\RSP2AB8.tmp" with contents <kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"win32/Release/libnoise.pdb" /machine:I386 /def:".\src\win32\libnoise.def" /out:"win32/Release/libnoise.dll" /implib:"win32/Release/libnoise.lib" +.\win32\Release\abs.obj +.\win32\Release\add.obj +.\win32\Release\billow.obj +.\win32\Release\blend.obj +.\win32\Release\cache.obj +.\win32\Release\checkerboard.obj +.\win32\Release\clamp.obj +.\win32\Release\const.obj +.\win32\Release\curve.obj +.\win32\Release\cylinders.obj +.\win32\Release\displace.obj +.\win32\Release\exponent.obj +.\win32\Release\invert.obj +.\win32\Release\max.obj +.\win32\Release\min.obj +.\win32\Release\modulebase.obj +.\win32\Release\multiply.obj +.\win32\Release\perlin.obj +.\win32\Release\power.obj +.\win32\Release\ridgedmulti.obj +.\win32\Release\rotatepoint.obj +.\win32\Release\scalebias.obj +.\win32\Release\scalepoint.obj +.\win32\Release\select.obj +.\win32\Release\spheres.obj +.\win32\Release\terrace.obj +.\win32\Release\translatepoint.obj +.\win32\Release\turbulence.obj +.\win32\Release\voronoi.obj +.\win32\Release\cylinder.obj +.\win32\Release\line.obj +.\win32\Release\plane.obj +.\win32\Release\sphere.obj +.\win32\Release\dllmain.obj +.\win32\Release\latlon.obj +.\win32\Release\noisegen.obj +.\win32\Release\noise.res> +Creating command line "link.exe @C:\DOCUME~1\jas\LOCALS~1\Temp\RSP2AB8.tmp" +Compiling resources... +Compiling... +abs.cpp +add.cpp +billow.cpp +blend.cpp +cache.cpp +checkerboard.cpp +clamp.cpp +const.cpp +curve.cpp +cylinders.cpp +displace.cpp +exponent.cpp +invert.cpp +max.cpp +min.cpp +modulebase.cpp +multiply.cpp +perlin.cpp +power.cpp +ridgedmulti.cpp +rotatepoint.cpp +scalebias.cpp +scalepoint.cpp +select.cpp +spheres.cpp +terrace.cpp +translatepoint.cpp +turbulence.cpp +voronoi.cpp +cylinder.cpp +line.cpp +plane.cpp +sphere.cpp +dllmain.cpp +latlon.cpp +noisegen.cpp +Linking... + Creating library win32/Release/libnoise.lib and object win32/Release/libnoise.exp + + + +libnoise.dll - 0 error(s), 0 warning(s)
binary file changed (absent → 31420 bytes)
@@ -0,0 +1,56 @@+LIBTOOL=libtool + +# defines source files and vpaths +include Sources + +DEPENDS=$(SOURCES:.cpp=.d) + +# What source objects are we building? +OBJECTS=$(SOURCES:.cpp=.o) + +.PHONY: all clean cleandeps cleanobjs cleanlib libnoise libnoise.so libnoise.so.0 + +# hooks for future makefiles being able to make multiple SOs, or older SOs +libnoise: libnoise.so libnoise.a libnoise.la +libnoise.so: libnoise.so.0 +libnoise.so.0: libnoise.so.0.3 + +# Real build targets +libnoise.so.0.3: $(OBJECTS) + $(LIBTOOL) --mode=link $(CXX) $(LDFLAGS) -shared -Wl,-soname=libnoise.so.0 -o $@ $(OBJECTS:.o=.lo) + +libnoise.a: $(OBJECTS) + $(LIBTOOL) --mode=link $(CXX) $(LDFLAGS) -o $@ $(OBJECTS) +libnoise.la: $(OBJECTS) + $(LIBTOOL) --mode=link $(CXX) $(LDFLAGS) -o $@ $(OBJECTS:.o=.lo) + +clean: cleandeps cleanobjs cleanlib +cleandeps: + -rm $(DEPENDS) +cleanobjs: + -rm $(OBJECTS) + -rm $(OBJECTS:.o=.lo) #clean up after libtool + -rm -rf .libs model/.libs module/.libs +cleanlib: + -rm libnoise.so.0.3 + -rm libnoise.a + -rm libnoise.la + +# Utility rules +# Generates dependancy files: +%.d: %.cpp + @set -e; rm -f $@; \ + $(CXX) -MM $(CPPFLAGS) $< > $@.$$$$; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ + rm -f $@.$$$$ + +# C and C++ libtool (rather than raw CXX/CC) use +%.o %.lo: %.cpp + $(LIBTOOL) --mode=compile $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $(@:.lo=.o) + +%.o %.lo: %.c + $(LIBTOOL) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $(@:.lo=.o) + +# If dependancies have never been built this will produce a horde of +# "file not found" warnings and *then* build the deps. Very odd. +include $(DEPENDS)
@@ -0,0 +1,80 @@+SOURCES=../src/latlon.cpp \ + ../src/noisegen.cpp \ + ../src/model/cylinder.cpp \ + ../src/model/line.cpp \ + ../src/model/plane.cpp \ + ../src/model/sphere.cpp \ + ../src/module/abs.cpp \ + ../src/module/add.cpp \ + ../src/module/billow.cpp \ + ../src/module/blend.cpp \ + ../src/module/cache.cpp \ + ../src/module/checkerboard.cpp \ + ../src/module/clamp.cpp \ + ../src/module/const.cpp \ + ../src/module/curve.cpp \ + ../src/module/cylinders.cpp \ + ../src/module/displace.cpp \ + ../src/module/exponent.cpp \ + ../src/module/invert.cpp \ + ../src/module/max.cpp \ + ../src/module/min.cpp \ + ../src/module/modulebase.cpp \ + ../src/module/multiply.cpp \ + ../src/module/perlin.cpp \ + ../src/module/power.cpp \ + ../src/module/ridgedmulti.cpp \ + ../src/module/rotatepoint.cpp \ + ../src/module/scalebias.cpp \ + ../src/module/scalepoint.cpp \ + ../src/module/select.cpp \ + ../src/module/spheres.cpp \ + ../src/module/terrace.cpp \ + ../src/module/translatepoint.cpp \ + ../src/module/turbulence.cpp \ + ../src/module/voronoi.cpp + +HEADERS=../src/basictypes.h \ + ../src/exception.h \ + ../src/interp.h \ + ../src/latlon.h \ + ../src/mathconsts.h \ + ../src/misc.h \ + ../src/noisegen.h \ + ../src/noise.h \ + ../src/vectortable.h \ + ../src/model/cylinder.h \ + ../src/model/model.h \ + ../src/model/sphere.h \ + ../src/model/line.h \ + ../src/model/plane.h \ + ../src/module/abs.h \ + ../src/module/add.h \ + ../src/module/billow.h \ + ../src/module/blend.h \ + ../src/module/cache.h \ + ../src/module/checkerboard.h \ + ../src/module/clamp.h \ + ../src/module/const.h \ + ../src/module/curve.h \ + ../src/module/cylinders.h \ + ../src/module/displace.h \ + ../src/module/exponent.h \ + ../src/module/invert.h \ + ../src/module/max.h \ + ../src/module/min.h \ + ../src/module/module.h \ + ../src/module/modulebase.h \ + ../src/module/multiply.h \ + ../src/module/perlin.h \ + ../src/module/power.h \ + ../src/module/ridgedmulti.h \ + ../src/module/rotatepoint.h \ + ../src/module/scalebias.h \ + ../src/module/scalepoint.h \ + ../src/module/select.h \ + ../src/module/spheres.h \ + ../src/module/terrace.h \ + ../src/module/translatepoint.h \ + ../src/module/turbulence.h \ + ../src/module/voronoi.h
@@ -0,0 +1,60 @@+// basictypes.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_BASICTYPES_H +#define NOISE_BASICTYPES_H + +// You may need to modify these constants for your compiler or platform. + +namespace noise +{ + + /// @defgroup libnoise libnoise + /// @addtogroup libnoise + /// @{ + + /// Unsigned integer type. + typedef unsigned int uint; + + /// 32-bit unsigned integer type. + typedef unsigned int uint32; + + /// 16-bit unsigned integer type. + typedef unsigned short uint16; + + /// 8-bit unsigned integer type. + typedef unsigned char uint8; + + /// 32-bit signed integer type. + typedef int int32; + + /// 16-bit signed integer type. + typedef short int16; + + /// 8-bit signed integer type. + typedef char int8; + + /// @} + +} + +#endif
@@ -0,0 +1,74 @@+// exception.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_EXCEPTION_H +#define NOISE_EXCEPTION_H + +namespace noise +{ + + /// @addtogroup libnoise + /// @{ + + /// Abstract base class for libnoise exceptions + class Exception + { + }; + + /// Invalid parameter exception + /// + /// An invalid parameter was passed to a libnoise function or method. + class ExceptionInvalidParam: public Exception + { + }; + + /// No module exception + /// + /// Could not retrieve a source module from a noise module. + /// + /// @note If one or more required source modules were not connected to a + /// specific noise module, and its GetValue() method was called, that + /// method will raise a debug assertion instead of this exception. This + /// is done for performance reasons. + class ExceptionNoModule: public Exception + { + }; + + /// Out of memory exception + /// + /// There was not enough memory to perform an action. + class ExceptionOutOfMemory: public Exception + { + }; + + /// Unknown exception + /// + /// libnoise raised an unknown exception. + class ExceptionUnknown: public Exception + { + }; + + /// @} + +} + +#endif
@@ -0,0 +1,112 @@+// interp.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_INTERP_H +#define NOISE_INTERP_H + +namespace noise +{ + + /// @addtogroup libnoise + /// @{ + + /// Performs cubic interpolation between two values bound between two other + /// values. + /// + /// @param n0 The value before the first value. + /// @param n1 The first value. + /// @param n2 The second value. + /// @param n3 The value after the second value. + /// @param a The alpha value. + /// + /// @returns The interpolated value. + /// + /// The alpha value should range from 0.0 to 1.0. If the alpha value is + /// 0.0, this function returns @a n1. If the alpha value is 1.0, this + /// function returns @a n2. + inline double CubicInterp (double n0, double n1, double n2, double n3, + double a) + { + double p = (n3 - n2) - (n0 - n1); + double q = (n0 - n1) - p; + double r = n2 - n0; + double s = n1; + return p * a * a * a + q * a * a + r * a + s; + } + + /// Performs linear interpolation between two values. + /// + /// @param n0 The first value. + /// @param n1 The second value. + /// @param a The alpha value. + /// + /// @returns The interpolated value. + /// + /// The alpha value should range from 0.0 to 1.0. If the alpha value is + /// 0.0, this function returns @a n0. If the alpha value is 1.0, this + /// function returns @a n1. + inline double LinearInterp (double n0, double n1, double a) + { + return ((1.0 - a) * n0) + (a * n1); + } + + /// Maps a value onto a cubic S-curve. + /// + /// @param a The value to map onto a cubic S-curve. + /// + /// @returns The mapped value. + /// + /// @a a should range from 0.0 to 1.0. + /// + /// The derivitive of a cubic S-curve is zero at @a a = 0.0 and @a a = + /// 1.0 + inline double SCurve3 (double a) + { + return (a * a * (3.0 - 2.0 * a)); + } + + /// Maps a value onto a quintic S-curve. + /// + /// @param a The value to map onto a quintic S-curve. + /// + /// @returns The mapped value. + /// + /// @a a should range from 0.0 to 1.0. + /// + /// The first derivitive of a quintic S-curve is zero at @a a = 0.0 and + /// @a a = 1.0 + /// + /// The second derivitive of a quintic S-curve is zero at @a a = 0.0 and + /// @a a = 1.0 + inline double SCurve5 (double a) + { + double a3 = a * a * a; + double a4 = a3 * a; + double a5 = a4 * a; + return (6.0 * a5) - (15.0 * a4) + (10.0 * a3); + } + + // @} + +} + +#endif
@@ -0,0 +1,34 @@+// latlon.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "latlon.h" + +using namespace noise; + +void noise::LatLonToXYZ (double lat, double lon, double& x, double& y, + double& z) +{ + double r = cos (DEG_TO_RAD * lat); + x = r * cos (DEG_TO_RAD * lon); + y = sin (DEG_TO_RAD * lat); + z = r * sin (DEG_TO_RAD * lon); +}
@@ -0,0 +1,52 @@+// latlon.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_LATLON_H +#define NOISE_LATLON_H + +#include <math.h> +#include "mathconsts.h" + +namespace noise +{ + + /// @addtogroup libnoise + /// @{ + + /// Converts latitude/longitude coordinates on a unit sphere into 3D + /// Cartesian coordinates. + /// + /// @param lat The latitude, in degrees. + /// @param lon The longitude, in degrees. + /// @param x On exit, this parameter contains the @a x coordinate. + /// @param y On exit, this parameter contains the @a y coordinate. + /// @param z On exit, this parameter contains the @a z coordinate. + /// + /// @pre lat must range from @b -90 to @b +90. + /// @pre lon must range from @b -180 to @b +180. + void LatLonToXYZ (double lat, double lon, double& x, double& y, double& z); + + /// @} + +} + +#endif
@@ -0,0 +1,54 @@+// mathconsts.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MATHCONSTS_H +#define NOISE_MATHCONSTS_H + +// For whatever reason, I can't find the basic math consts in the MSVC version +// of math.h. + +namespace noise +{ + + /// @addtogroup libnoise + /// @{ + + /// Pi. + const double PI = 3.1415926535897932385; + + /// Square root of 2. + const double SQRT_2 = 1.4142135623730950488; + + /// Square root of 3. + const double SQRT_3 = 1.7320508075688772935; + + /// Converts an angle from degrees to radians. + const double DEG_TO_RAD = PI / 180.0; + + /// Converts an angle from radians to degrees. + const double RAD_TO_DEG = 1.0 / DEG_TO_RAD; + + /// @} + +} + +#endif
@@ -0,0 +1,97 @@+// misc.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MISC_H +#define NOISE_MISC_H + +namespace noise +{ + + /// Clamps a value onto a clamping range. + /// + /// @param value The value to clamp. + /// @param lowerBound The lower bound of the clamping range. + /// @param upperBound The upper bound of the clamping range. + /// + /// @returns + /// - @a value if @a value lies between @a lowerBound and @a upperBound. + /// - @a lowerBound if @a value is less than @a lowerBound. + /// - @a upperBound if @a value is greater than @a upperBound. + /// + /// This function does not modify any parameters. + inline int ClampValue (int value, int lowerBound, int upperBound) + { + if (value < lowerBound) { + return lowerBound; + } else if (value > upperBound) { + return upperBound; + } else { + return value; + } + } + + /// @addtogroup libnoise + /// @{ + + /// Returns the maximum of two values. + /// + /// @param a The first value. + /// @param b The second value. + /// + /// @returns The maximum of the two values. + template <class T> + T GetMax (const T& a, const T& b) + { + return (a > b? a: b); + } + + /// Returns the minimum of two values. + /// + /// @param a The first value. + /// @param b The second value. + /// + /// @returns The minimum of the two values. + template <class T> + T GetMin (const T& a, const T& b) + { + return (a < b? a: b); + } + + /// Swaps two values. + /// + /// @param a A variable containing the first value. + /// @param b A variable containing the second value. + /// + /// @post The values within the the two variables are swapped. + template <class T> + void SwapValues (T& a, T& b) + { + T c = a; + a = b; + b = c; + } + + /// @} + +} + +#endif
@@ -0,0 +1,47 @@+// cylinder.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "../mathconsts.h" +#include "cylinder.h" + +using namespace noise; +using namespace noise::model; + +Cylinder::Cylinder (): m_pModule (NULL) +{ +} + +Cylinder::Cylinder (const module::Module& module): + m_pModule (&module) +{ +} + +double Cylinder::GetValue (double angle, double height) const +{ + assert (m_pModule != NULL); + + double x, y, z; + x = cos (angle * DEG_TO_RAD); + y = height; + z = sin (angle * DEG_TO_RAD); + return m_pModule->GetValue (x, y, z); +}
@@ -0,0 +1,131 @@+// cylinder.h +// +// Copyright 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODEL_CYLINDER_H +#define NOISE_MODEL_CYLINDER_H + +#include <assert.h> +#include <math.h> +#include <stdlib.h> +#include "../module/modulebase.h" + +namespace noise +{ + + namespace model + { + + /// @addtogroup libnoise + /// @{ + + /// @defgroup models Models + /// @addtogroup models + /// @{ + + /// Model that defines the surface of a cylinder. + /// + /// @image html modelcylinder.png + /// + /// This model returns an output value from a noise module given the + /// coordinates of an input value located on the surface of a cylinder. + /// + /// To generate an output value, pass the (angle, height) coordinates of + /// an input value to the GetValue() method. + /// + /// This model is useful for creating: + /// - seamless textures that can be mapped onto a cylinder + /// + /// This cylinder has a radius of 1.0 unit and has infinite height. It is + /// oriented along the @a y axis. Its center is located at the origin. + class Cylinder + { + + public: + + /// Constructor. + Cylinder (); + + /// Constructor + /// + /// @param module The noise module that is used to generate the output + /// values. + Cylinder (const module::Module& module); + + /// Returns the noise module that is used to generate the output + /// values. + /// + /// @returns A reference to the noise module. + /// + /// @pre A noise module was passed to the SetModule() method. + const module::Module& GetModule () const + { + assert (m_pModule != NULL); + return *m_pModule; + } + + /// Returns the output value from the noise module given the + /// (angle, height) coordinates of the specified input value located + /// on the surface of the cylinder. + /// + /// @param angle The angle around the cylinder's center, in degrees. + /// @param height The height along the @a y axis. + /// + /// @returns The output value from the noise module. + /// + /// @pre A noise module was passed to the SetModule() method. + /// + /// This output value is generated by the noise module passed to the + /// SetModule() method. + /// + /// This cylinder has a radius of 1.0 unit and has infinite height. + /// It is oriented along the @a y axis. Its center is located at the + /// origin. + double GetValue (double angle, double height) const; + + /// Sets the noise module that is used to generate the output values. + /// + /// @param module The noise module that is used to generate the output + /// values. + /// + /// This noise module must exist for the lifetime of this object, + /// until you pass a new noise module to this method. + void SetModule (const module::Module& module) + { + m_pModule = &module; + } + + private: + + /// A pointer to the noise module used to generate the output values. + const module::Module* m_pModule; + + }; + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,65 @@+// line.cpp +// +// Copyright (C) 2004 Keith Davies +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// + +#include "line.h" + +using namespace noise; +using namespace noise::model; + +Line::Line (): + + m_attenuate (true), + m_pModule (NULL), + m_x0 (0.0), + m_x1 (1.0), + m_y0 (0.0), + m_y1 (1.0), + m_z0 (0.0), + m_z1 (1.0) +{ +} + +Line::Line (const module::Module& module): + + m_attenuate (true), + m_pModule (&module), + m_x0 (0.0), + m_x1 (1.0), + m_y0 (0.0), + m_y1 (1.0), + m_z0 (0.0), + m_z1 (1.0) +{ +} + +double Line::GetValue (double p) const +{ + assert (m_pModule != NULL); + + double x = (m_x1 - m_x0) * p + m_x0; + double y = (m_y1 - m_y0) * p + m_y0; + double z = (m_z1 - m_z0) * p + m_z0; + double value = m_pModule->GetValue (x, y, z); + + if (m_attenuate) { + return p * (1.0 - p) * 4 * value; + } else { + return value; + } +}
@@ -0,0 +1,198 @@+// line.h +// +// Copyright (C) 2004 Keith Davies +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// + +#ifndef NOISE_MODEL_LINE_H +#define NOISE_MODEL_LINE_H + +#include <assert.h> +#include <math.h> +#include <stdlib.h> +#include "../module/modulebase.h" + +namespace noise +{ + + namespace model + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup models + /// @{ + + /// Model that defines the displacement of a line segment. + /// + /// This model returns an output value from a noise module given the + /// one-dimensional coordinate of an input value located on a line + /// segment, which can be used as displacements. + /// + /// This class is useful for creating: + /// - roads and rivers + /// - disaffected college students + /// + /// To generate an output value, pass an input value between 0.0 and 1.0 + /// to the GetValue() method. 0.0 represents the start position of the + /// line segment and 1.0 represents the end position of the line segment. + class Line + { + + public: + + /// Constructor. + Line (); + + /// Constructor + /// + /// @param module The noise module that is used to generate the output + /// values. + Line (const module::Module& module); + + /// Returns a flag indicating whether the output value is to be + /// attenuated (moved toward 0.0) as the ends of the line segment are + /// approached by the input value. + /// + /// @returns + /// - @a true if the value is to be attenuated + /// - @a false if not. + bool GetAttenuate () const + { + return m_attenuate; + } + + /// Returns the noise module that is used to generate the output + /// values. + /// + /// @returns A reference to the noise module. + /// + /// @pre A noise module was passed to the SetModule() method. + const module::Module& GetModule () const + { + assert (m_pModule != NULL); + return *m_pModule; + } + + /// Returns the output value from the noise module given the + /// one-dimensional coordinate of the specified input value located + /// on the line segment. + /// + /// @param p The distance along the line segment (ranges from 0.0 + /// to 1.0) + /// + /// @returns The output value from the noise module. + /// + /// @pre A noise module was passed to the SetModule() method. + /// @pre The start and end points of the line segment were specified. + /// + /// The output value is generated by the noise module passed to the + /// SetModule() method. This value may be attenuated (moved toward + /// 0.0) as @a p approaches either end of the line segment; this is + /// the default behavior. + /// + /// If the value is not to be attenuated, @a p can safely range + /// outside the 0.0 to 1.0 range; the output value will be + /// extrapolated along the line that this segment is part of. + double GetValue (double p) const; + + /// Sets a flag indicating that the output value is to be attenuated + /// (moved toward 0.0) as the ends of the line segment are approached. + /// + /// @param att A flag that specifies whether the output value is to be + /// attenuated. + void SetAttenuate (bool att) + { + m_attenuate = att; + } + + /// Sets the position ( @a x, @a y, @a z ) of the end of the line + /// segment to choose values along. + /// + /// @param x x coordinate of the end position. + /// @param y y coordinate of the end position. + /// @param z z coordinate of the end position. + void SetEndPoint (double x, double y, double z) + { + m_x1 = x; + m_y1 = y; + m_z1 = z; + } + + /// Sets the noise module that is used to generate the output values. + /// + /// @param module The noise module that is used to generate the output + /// values. + /// + /// This noise module must exist for the lifetime of this object, + /// until you pass a new noise module to this method. + void SetModule (const module::Module& module) + { + m_pModule = &module; + } + + /// Sets the position ( @a x, @a y, @a z ) of the start of the line + /// segment to choose values along. + /// + /// @param x x coordinate of the start position. + /// @param y y coordinate of the start position. + /// @param z z coordinate of the start position. + void SetStartPoint (double x, double y, double z) + { + m_x0 = x; + m_y0 = y; + m_z0 = z; + } + + private: + + /// A flag that specifies whether the value is to be attenuated + /// (moved toward 0.0) as the ends of the line segment are approached. + bool m_attenuate; + + /// A pointer to the noise module used to generate the output values. + const module::Module* m_pModule; + + /// @a x coordinate of the start of the line segment. + double m_x0; + + /// @a x coordinate of the end of the line segment. + double m_x1; + + /// @a y coordinate of the start of the line segment. + double m_y0; + + /// @a y coordinate of the end of the line segment. + double m_y1; + + /// @a z coordinate of the start of the line segment. + double m_z0; + + /// @a z coordinate of the end of the line segment. + double m_z1; + + }; + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,31 @@+// model.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODEL_H +#define NOISE_MODEL_H + +#include "cylinder.h" +#include "line.h" +#include "plane.h" +#include "sphere.h" + +#endif
@@ -0,0 +1,43 @@+// plane.cpp +// +// Copyright (C) 2004 Owen Jacobson +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is ojacobson@lionsanctuary.net +// + +#include "plane.h" + +using namespace noise; +using namespace noise::model; + +Plane::Plane (): + m_pModule (NULL) +{ +} + +Plane::Plane (const module::Module& module) : + m_pModule( &module) +{ +} + +// Told you this was trivial. +double Plane::GetValue (double x, double z) const +{ + assert (m_pModule != NULL); + + return m_pModule->GetValue (x, 0, z); +}
@@ -0,0 +1,121 @@+// plane.h +// +// Copyright (C) 2004 Owen Jacobson +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is ojacobson@lionsanctuary.net +// + +#ifndef NOISE_MODEL_PLANE_H +#define NOISE_MODEL_PLANE_H + +#include <assert.h> +#include "../module/modulebase.h" + +namespace noise +{ + + namespace model + { + /// @addtogroup libnoise + /// @{ + + /// @addtogroup models + /// @{ + + /// Model that defines the surface of a plane. + /// + /// This model returns an output value from a noise module given the + /// coordinates of an input value located on the surface of an ( @a x, + /// @a z ) plane. + /// + /// To generate an output value, pass the ( @a x, @a z ) coordinates of + /// an input value to the GetValue() method. + /// + /// This model is useful for creating: + /// - two-dimensional textures + /// - terrain height maps for local areas + /// + /// This plane extends infinitely in both directions. + class Plane + { + + public: + + /// Constructor. + Plane (); + + /// Constructor + /// + /// @param module The noise module that is used to generate the output + /// values. + Plane (const module::Module& module); + + /// Returns the noise module that is used to generate the output + /// values. + /// + /// @returns A reference to the noise module. + /// + /// @pre A noise module was passed to the SetModule() method. + const module::Module& GetModule () const + { + assert (m_pModule != NULL); + return *m_pModule; + } + + /// Returns the output value from the noise module given the + /// ( @a x, @a z ) coordinates of the specified input value located + /// on the surface of the plane. + /// + /// @param x The @a x coordinate of the input value. + /// @param z The @a z coordinate of the input value. + /// + /// @returns The output value from the noise module. + /// + /// @pre A noise module was passed to the SetModule() method. + /// + /// This output value is generated by the noise module passed to the + /// SetModule() method. + double GetValue (double x, double z) const; + + /// Sets the noise module that is used to generate the output values. + /// + /// @param module The noise module that is used to generate the output + /// values. + /// + /// This noise module must exist for the lifetime of this object, + /// until you pass a new noise module to this method. + void SetModule (const module::Module& module) + { + m_pModule = &module; + } + + private: + + /// A pointer to the noise module used to generate the output values. + const module::Module* m_pModule; + + }; + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,46 @@+// sphere.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "../latlon.h" +#include "sphere.h" + +using namespace noise; +using namespace noise::model; + +Sphere::Sphere (): + m_pModule (NULL) +{ +} + +Sphere::Sphere (const module::Module& module): + m_pModule (&module) +{ +} + +double Sphere::GetValue (double lat, double lon) const +{ + assert (m_pModule != NULL); + + double x, y, z; + LatLonToXYZ (lat, lon, x, y, z); + return m_pModule->GetValue (x, y, z); +}
@@ -0,0 +1,131 @@+// sphere.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODEL_SPHERE_H +#define NOISE_MODEL_SPHERE_H + +#include <assert.h> +#include "../module/modulebase.h" + +namespace noise +{ + + namespace model + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup models + /// @{ + + /// Model that defines the surface of a sphere. + /// + /// @image html modelsphere.png + /// + /// This model returns an output value from a noise module given the + /// coordinates of an input value located on the surface of a sphere. + /// + /// To generate an output value, pass the (latitude, longitude) + /// coordinates of an input value to the GetValue() method. + /// + /// This model is useful for creating: + /// - seamless textures that can be mapped onto a sphere + /// - terrain height maps for entire planets + /// + /// This sphere has a radius of 1.0 unit and its center is located at + /// the origin. + class Sphere + { + + public: + + /// Constructor. + Sphere (); + + /// Constructor + /// + /// @param module The noise module that is used to generate the output + /// values. + Sphere (const module::Module& module); + + /// Returns the noise module that is used to generate the output + /// values. + /// + /// @returns A reference to the noise module. + /// + /// @pre A noise module was passed to the SetModule() method. + const module::Module& GetModule () const + { + assert (m_pModule != NULL); + return *m_pModule; + } + + /// Returns the output value from the noise module given the + /// (latitude, longitude) coordinates of the specified input value + /// located on the surface of the sphere. + /// + /// @param lat The latitude of the input value, in degrees. + /// @param lon The longitude of the input value, in degrees. + /// + /// @returns The output value from the noise module. + /// + /// @pre A noise module was passed to the SetModule() method. + /// + /// This output value is generated by the noise module passed to the + /// SetModule() method. + /// + /// Use a negative latitude if the input value is located on the + /// southern hemisphere. + /// + /// Use a negative longitude if the input value is located on the + /// western hemisphere. + double GetValue (double lat, double lon) const; + + /// Sets the noise module that is used to generate the output values. + /// + /// @param module The noise module that is used to generate the output + /// values. + /// + /// This noise module must exist for the lifetime of this object, + /// until you pass a new noise module to this method. + void SetModule (const module::Module& module) + { + m_pModule = &module; + } + + private: + + /// A pointer to the noise module used to generate the output values. + const module::Module* m_pModule; + + }; + + /// @} + + /// @} + + } + +} + +#endif
binary file changed (absent → 12288 bytes)
@@ -0,0 +1,37 @@+// abs.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "abs.h" + +using namespace noise::module; + +Abs::Abs (): + Module (GetSourceModuleCount ()) +{ +} + +double Abs::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + + return fabs (m_pSourceModule[0]->GetValue (x, y, z)); +}
@@ -0,0 +1,76 @@+// abs.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_ABS_H +#define NOISE_MODULE_ABS_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @defgroup modifiermodules Modifier Modules + /// @addtogroup modifiermodules + /// @{ + + /// Noise module that outputs the absolute value of the output value from + /// a source module. + /// + /// @image html moduleabs.png + /// + /// This noise module requires one source module. + class Abs: public Module + { + + public: + + /// Constructor. + Abs (); + + virtual int GetSourceModuleCount () const + { + return 1; + } + + virtual double GetValue (double x, double y, double z) const; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,39 @@+// add.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "add.h" + +using namespace noise::module; + +Add::Add (): + Module (GetSourceModuleCount ()) +{ +} + +double Add::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + assert (m_pSourceModule[1] != NULL); + + return m_pSourceModule[0]->GetValue (x, y, z) + + m_pSourceModule[1]->GetValue (x, y, z); +}
@@ -0,0 +1,77 @@+// add.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_ADD_H +#define NOISE_MODULE_ADD_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @defgroup combinermodules Combiner Modules + /// @addtogroup combinermodules + /// @{ + + /// Noise module that outputs the sum of the two output values from two + /// source modules. + /// + /// @image html moduleadd.png + /// + /// This noise module requires two source modules. + class Add: public Module + { + + public: + + /// Constructor. + Add (); + + virtual int GetSourceModuleCount () const + { + return 2; + } + + virtual double GetValue (double x, double y, double z) const; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,74 @@+// billow.cpp +// +// Copyright (C) 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "billow.h" + +using namespace noise::module; + +Billow::Billow (): + Module (GetSourceModuleCount ()), + m_frequency (DEFAULT_BILLOW_FREQUENCY ), + m_lacunarity (DEFAULT_BILLOW_LACUNARITY ), + m_noiseQuality (DEFAULT_BILLOW_QUALITY ), + m_octaveCount (DEFAULT_BILLOW_OCTAVE_COUNT), + m_persistence (DEFAULT_BILLOW_PERSISTENCE ), + m_seed (DEFAULT_BILLOW_SEED) +{ +} + +double Billow::GetValue (double x, double y, double z) const +{ + double value = 0.0; + double signal = 0.0; + double curPersistence = 1.0; + double nx, ny, nz; + int seed; + + x *= m_frequency; + y *= m_frequency; + z *= m_frequency; + + for (int curOctave = 0; curOctave < m_octaveCount; curOctave++) { + + // Make sure that these floating-point values have the same range as a 32- + // bit integer so that we can pass them to the coherent-noise functions. + nx = MakeInt32Range (x); + ny = MakeInt32Range (y); + nz = MakeInt32Range (z); + + // Get the coherent-noise value from the input value and add it to the + // final result. + seed = (m_seed + curOctave) & 0xffffffff; + signal = GradientCoherentNoise3D (nx, ny, nz, seed, m_noiseQuality); + signal = 2.0 * fabs (signal) - 1.0; + value += signal * curPersistence; + + // Prepare the next octave. + x *= m_lacunarity; + y *= m_lacunarity; + z *= m_lacunarity; + curPersistence *= m_persistence; + } + value += 0.5; + + return value; +}
@@ -0,0 +1,277 @@+// billow.h +// +// Copyright (C) 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_BILLOW_H +#define NOISE_MODULE_BILLOW_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup generatormodules + /// @{ + + /// Default frequency for the noise::module::Billow noise module. + const double DEFAULT_BILLOW_FREQUENCY = 1.0; + + /// Default lacunarity for the the noise::module::Billow noise module. + const double DEFAULT_BILLOW_LACUNARITY = 2.0; + + /// Default number of octaves for the the noise::module::Billow noise + /// module. + const int DEFAULT_BILLOW_OCTAVE_COUNT = 6; + + /// Default persistence value for the the noise::module::Billow noise + /// module. + const double DEFAULT_BILLOW_PERSISTENCE = 0.5; + + /// Default noise quality for the the noise::module::Billow noise module. + const noise::NoiseQuality DEFAULT_BILLOW_QUALITY = QUALITY_STD; + + /// Default noise seed for the the noise::module::Billow noise module. + const int DEFAULT_BILLOW_SEED = 0; + + /// Maximum number of octaves for the the noise::module::Billow noise + /// module. + const int BILLOW_MAX_OCTAVE = 30; + + /// Noise module that outputs three-dimensional "billowy" noise. + /// + /// @image html modulebillow.png + /// + /// This noise module generates "billowy" noise suitable for clouds and + /// rocks. + /// + /// This noise module is nearly identical to noise::module::Perlin except + /// this noise module modifies each octave with an absolute-value + /// function. See the documentation of noise::module::Perlin for more + /// information. + class Billow: public Module + { + + public: + + /// Constructor. + /// + /// The default frequency is set to + /// noise::module::DEFAULT_BILLOW_FREQUENCY. + /// + /// The default lacunarity is set to + /// noise::module::DEFAULT_BILLOW_LACUNARITY. + /// + /// The default number of octaves is set to + /// noise::module::DEFAULT_BILLOW_OCTAVE_COUNT. + /// + /// The default persistence value is set to + /// noise::module::DEFAULT_BILLOW_PERSISTENCE. + /// + /// The default seed value is set to + /// noise::module::DEFAULT_BILLOW_SEED. + Billow (); + + /// Returns the frequency of the first octave. + /// + /// @returns The frequency of the first octave. + double GetFrequency () const + { + return m_frequency; + } + + /// Returns the lacunarity of the billowy noise. + /// + /// @returns The lacunarity of the billowy noise. + /// + /// The lacunarity is the frequency multiplier between successive + /// octaves. + double GetLacunarity () const + { + return m_lacunarity; + } + + /// Returns the quality of the billowy noise. + /// + /// @returns The quality of the billowy noise. + /// + /// See noise::NoiseQuality for definitions of the various + /// coherent-noise qualities. + noise::NoiseQuality GetNoiseQuality () const + { + return m_noiseQuality; + } + + /// Returns the number of octaves that generate the billowy noise. + /// + /// @returns The number of octaves that generate the billowy noise. + /// + /// The number of octaves controls the amount of detail in the billowy + /// noise. + int GetOctaveCount () const + { + return m_octaveCount; + } + + /// Returns the persistence value of the billowy noise. + /// + /// @returns The persistence value of the billowy noise. + /// + /// The persistence value controls the roughness of the billowy noise. + double GetPersistence () const + { + return m_persistence; + } + + /// Returns the seed value used by the billowy-noise function. + /// + /// @returns The seed value. + int GetSeed () const + { + return m_seed; + } + + virtual int GetSourceModuleCount () const + { + return 0; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the frequency of the first octave. + /// + /// @param frequency The frequency of the first octave. + void SetFrequency (double frequency) + { + m_frequency = frequency; + } + + /// Sets the lacunarity of the billowy noise. + /// + /// @param lacunarity The lacunarity of the billowy noise. + /// + /// The lacunarity is the frequency multiplier between successive + /// octaves. + /// + /// For best results, set the lacunarity to a number between 1.5 and + /// 3.5. + void SetLacunarity (double lacunarity) + { + m_lacunarity = lacunarity; + } + + /// Sets the quality of the billowy noise. + /// + /// @param noiseQuality The quality of the billowy noise. + /// + /// See noise::NoiseQuality for definitions of the various + /// coherent-noise qualities. + void SetNoiseQuality (noise::NoiseQuality noiseQuality) + { + m_noiseQuality = noiseQuality; + } + + /// Sets the number of octaves that generate the billowy noise. + /// + /// @param octaveCount The number of octaves that generate the billowy + /// noise. + /// + /// @pre The number of octaves ranges from 1 to + /// noise::module::BILLOW_MAX_OCTAVE. + /// + /// @throw noise::ExceptionInvalidParam An invalid parameter was + /// specified; see the preconditions for more information. + /// + /// The number of octaves controls the amount of detail in the billowy + /// noise. + /// + /// The larger the number of octaves, the more time required to + /// calculate the billowy-noise value. + void SetOctaveCount (int octaveCount) + { + if (octaveCount < 1 || octaveCount > BILLOW_MAX_OCTAVE) { + throw noise::ExceptionInvalidParam (); + } + m_octaveCount = octaveCount; + } + + /// Sets the persistence value of the billowy noise. + /// + /// @param persistence The persistence value of the billowy noise. + /// + /// The persistence value controls the roughness of the billowy noise. + /// + /// For best results, set the persistence value to a number between + /// 0.0 and 1.0. + void SetPersistence (double persistence) + { + m_persistence = persistence; + } + + /// Sets the seed value used by the billowy-noise function. + /// + /// @param seed The seed value. + void SetSeed (int seed) + { + m_seed = seed; + } + + protected: + + /// Frequency of the first octave. + double m_frequency; + + /// Frequency multiplier between successive octaves. + double m_lacunarity; + + /// Quality of the billowy noise. + noise::NoiseQuality m_noiseQuality; + + /// Total number of octaves that generate the billowy noise. + int m_octaveCount; + + /// Persistence value of the billowy noise. + double m_persistence; + + /// Seed value used by the billowy-noise function. + int m_seed; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,43 @@+// blend.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "blend.h" +#include "../interp.h" + +using namespace noise::module; + +Blend::Blend (): + Module (GetSourceModuleCount ()) +{ +} + +double Blend::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + assert (m_pSourceModule[1] != NULL); + assert (m_pSourceModule[2] != NULL); + + double v0 = m_pSourceModule[0]->GetValue (x, y, z); + double v1 = m_pSourceModule[1]->GetValue (x, y, z); + double alpha = (m_pSourceModule[2]->GetValue (x, y, z) + 1.0) / 2.0; + return LinearInterp (v0, v1, alpha); +}
@@ -0,0 +1,144 @@+// blend.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_BLEND_H +#define NOISE_MODULE_BLEND_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @defgroup selectormodules Selector Modules + /// @addtogroup selectormodules + /// @{ + + /// Noise module that outputs a weighted blend of the output values from + /// two source modules given the output value supplied by a control module. + /// + /// @image html moduleblend.png + /// + /// Unlike most other noise modules, the index value assigned to a source + /// module determines its role in the blending operation: + /// - Source module 0 (upper left in the diagram) outputs one of the + /// values to blend. + /// - Source module 1 (lower left in the diagram) outputs one of the + /// values to blend. + /// - Source module 2 (bottom of the diagram) is known as the <i>control + /// module</i>. The control module determines the weight of the + /// blending operation. Negative values weigh the blend towards the + /// output value from the source module with an index value of 0. + /// Positive values weigh the blend towards the output value from the + /// source module with an index value of 1. + /// + /// An application can pass the control module to the SetControlModule() + /// method instead of the SetSourceModule() method. This may make the + /// application code easier to read. + /// + /// This noise module uses linear interpolation to perform the blending + /// operation. + /// + /// This noise module requires three source modules. + class Blend: public Module + { + + public: + + /// Constructor. + Blend (); + + /// Returns the control module. + /// + /// @returns A reference to the control module. + /// + /// @pre A control module has been added to this noise module via a + /// call to SetSourceModule() or SetControlModule(). + /// + /// @throw noise::ExceptionNoModule See the preconditions for more + /// information. + /// + /// The control module determines the weight of the blending + /// operation. Negative values weigh the blend towards the output + /// value from the source module with an index value of 0. Positive + /// values weigh the blend towards the output value from the source + /// module with an index value of 1. + const Module& GetControlModule () const + { + if (m_pSourceModule == NULL || m_pSourceModule[2] == NULL) { + throw noise::ExceptionNoModule (); + } + return *(m_pSourceModule[2]); + } + + virtual int GetSourceModuleCount () const + { + return 3; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the control module. + /// + /// @param controlModule The control module. + /// + /// The control module determines the weight of the blending + /// operation. Negative values weigh the blend towards the output + /// value from the source module with an index value of 0. Positive + /// values weigh the blend towards the output value from the source + /// module with an index value of 1. + /// + /// This method assigns the control module an index value of 2. + /// Passing the control module to this method produces the same + /// results as passing the control module to the SetSourceModule() + /// method while assigning that noise module an index value of 2. + /// + /// This control module must exist throughout the lifetime of this + /// noise module unless another control module replaces that control + /// module. + void SetControlModule (const Module& controlModule) + { + assert (m_pSourceModule != NULL); + m_pSourceModule[2] = &controlModule; + } + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,45 @@+// cache.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "cache.h" + +using namespace noise::module; + +Cache::Cache (): + Module (GetSourceModuleCount ()), + m_isCached (false) +{ +} + +double Cache::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + + if (!(m_isCached && x == m_xCache && y == m_yCache && z == m_zCache)) { + m_cachedValue = m_pSourceModule[0]->GetValue (x, y, z); + m_xCache = x; + m_yCache = y; + m_zCache = z; + } + m_isCached = true; + return m_cachedValue; +}
@@ -0,0 +1,118 @@+// cache.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_CACHE_H +#define NOISE_MODULE_CACHE_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @defgroup miscmodules Miscellaneous Modules + /// @addtogroup miscmodules + /// @{ + + /// Noise module that caches the last output value generated by a source + /// module. + /// + /// If an application passes an input value to the GetValue() method that + /// differs from the previously passed-in input value, this noise module + /// instructs the source module to calculate the output value. This + /// value, as well as the ( @a x, @a y, @a z ) coordinates of the input + /// value, are stored (cached) in this noise module. + /// + /// If the application passes an input value to the GetValue() method + /// that is equal to the previously passed-in input value, this noise + /// module returns the cached output value without having the source + /// module recalculate the output value. + /// + /// If an application passes a new source module to the SetSourceModule() + /// method, the cache is invalidated. + /// + /// Caching a noise module is useful if it is used as a source module for + /// multiple noise modules. If a source module is not cached, the source + /// module will redundantly calculate the same output value once for each + /// noise module in which it is included. + /// + /// This noise module requires one source module. + class Cache: public Module + { + + public: + + /// Constructor. + Cache (); + + virtual int GetSourceModuleCount () const + { + return 1; + } + + virtual double GetValue (double x, double y, double z) const; + + virtual void SetSourceModule (int index, const Module& sourceModule) + { + Module::SetSourceModule (index, sourceModule); + m_isCached = false; + } + + protected: + + /// The cached output value at the cached input value. + mutable double m_cachedValue; + + /// Determines if a cached output value is stored in this noise + /// module. + mutable double m_isCached; + + /// @a x coordinate of the cached input value. + mutable double m_xCache; + + /// @a y coordinate of the cached input value. + mutable double m_yCache; + + /// @a z coordinate of the cached input value. + mutable double m_zCache; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,38 @@+// checkerboard.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "checkerboard.h" + +using namespace noise::module; + +Checkerboard::Checkerboard (): + Module (GetSourceModuleCount ()) +{ +} + +double Checkerboard::GetValue (double x, double y, double z) const +{ + int ix = (int)(floor (MakeInt32Range (x))); + int iy = (int)(floor (MakeInt32Range (y))); + int iz = (int)(floor (MakeInt32Range (z))); + return (ix & 1 ^ iy & 1 ^ iz & 1)? -1.0: 1.0; +}
@@ -0,0 +1,81 @@+// checkerboard.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_CHECKERBOARD_H +#define NOISE_MODULE_CHECKERBOARD_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup generatormodules + /// @{ + + /// Noise module that outputs a checkerboard pattern. + /// + /// @image html modulecheckerboard.png + /// + /// This noise module outputs unit-sized blocks of alternating values. + /// The values of these blocks alternate between -1.0 and +1.0. + /// + /// This noise module is not really useful by itself, but it is often used + /// for debugging purposes. + /// + /// This noise module does not require any source modules. + class Checkerboard: public Module + { + + public: + + /// Constructor. + Checkerboard (); + + virtual int GetSourceModuleCount () const + { + return 0; + } + + virtual double GetValue (double x, double y, double z) const; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,54 @@+// clamp.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "clamp.h" + +using namespace noise::module; + +Clamp::Clamp (): + Module (GetSourceModuleCount ()), + m_lowerBound (DEFAULT_CLAMP_LOWER_BOUND), + m_upperBound (DEFAULT_CLAMP_UPPER_BOUND) +{ +} + +double Clamp::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + + double value = m_pSourceModule[0]->GetValue (x, y, z); + if (value < m_lowerBound) { + return m_lowerBound; + } else if (value > m_upperBound) { + return m_upperBound; + } else { + return value; + } +} + +void Clamp::SetBounds (double lowerBound, double upperBound) +{ + assert (lowerBound < upperBound); + + m_lowerBound = lowerBound; + m_upperBound = upperBound; +}
@@ -0,0 +1,152 @@+// clamp.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_CLAMP_H +#define NOISE_MODULE_CLAMP_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup modifiermodules + /// @{ + + /// Default lower bound of the clamping range for the noise::module::Clamp + /// noise module. + const double DEFAULT_CLAMP_LOWER_BOUND = -1.0; + + /// Default upper bound of the clamping range for the noise::module::Clamp + /// noise module. + const double DEFAULT_CLAMP_UPPER_BOUND = 1.0; + + /// Noise module that clamps the output value from a source module to a + /// range of values. + /// + /// @image html moduleclamp.png + /// + /// The range of values in which to clamp the output value is called the + /// <i>clamping range</i>. + /// + /// If the output value from the source module is less than the lower + /// bound of the clamping range, this noise module clamps that value to + /// the lower bound. If the output value from the source module is + /// greater than the upper bound of the clamping range, this noise module + /// clamps that value to the upper bound. + /// + /// To specify the upper and lower bounds of the clamping range, call the + /// SetBounds() method. + /// + /// This noise module requires one source module. + class Clamp: public Module + { + + public: + + /// Constructor. + /// + /// The default lower bound of the clamping range is set to + /// noise::module::DEFAULT_CLAMP_LOWER_BOUND. + /// + /// The default upper bound of the clamping range is set to + /// noise::module::DEFAULT_CLAMP_UPPER_BOUND. + Clamp (); + + /// Returns the lower bound of the clamping range. + /// + /// @returns The lower bound. + /// + /// If the output value from the source module is less than the lower + /// bound of the clamping range, this noise module clamps that value + /// to the lower bound. + double GetLowerBound () const + { + return m_lowerBound; + } + + virtual int GetSourceModuleCount () const + { + return 1; + } + + /// Returns the upper bound of the clamping range. + /// + /// @returns The upper bound. + /// + /// If the output value from the source module is greater than the + /// upper bound of the clamping range, this noise module clamps that + /// value to the upper bound. + double GetUpperBound () const + { + return m_upperBound; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the lower and upper bounds of the clamping range. + /// + /// @param lowerBound The lower bound. + /// @param upperBound The upper bound. + /// + /// @pre The lower bound must be less than or equal to the + /// upper bound. + /// + /// @throw noise::ExceptionInvalidParam An invalid parameter was + /// specified; see the preconditions for more information. + /// + /// If the output value from the source module is less than the lower + /// bound of the clamping range, this noise module clamps that value + /// to the lower bound. If the output value from the source module + /// is greater than the upper bound of the clamping range, this noise + /// module clamps that value to the upper bound. + void SetBounds (double lowerBound, double upperBound); + + protected: + + /// Lower bound of the clamping range. + double m_lowerBound; + + /// Upper bound of the clamping range. + double m_upperBound; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,31 @@+// const.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "const.h" + +using namespace noise::module; + +Const::Const (): + Module (GetSourceModuleCount ()), + m_constValue (DEFAULT_CONST_VALUE) +{ +}
@@ -0,0 +1,111 @@+// const.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_CONST_H +#define NOISE_MODULE_CONST_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @defgroup generatormodules Generator Modules + /// @addtogroup generatormodules + /// @{ + + /// Default constant value for the noise::module::Const noise module. + const double DEFAULT_CONST_VALUE = 0.0; + + /// Noise module that outputs a constant value. + /// + /// @image html moduleconst.png + /// + /// To specify the constant value, call the SetConstValue() method. + /// + /// This noise module is not useful by itself, but it is often used as a + /// source module for other noise modules. + /// + /// This noise module does not require any source modules. + class Const: public Module + { + + public: + + /// Constructor. + /// + /// The default constant value is set to + /// noise::module::DEFAULT_CONST_VALUE. + Const (); + + /// Returns the constant output value for this noise module. + /// + /// @returns The constant output value for this noise module. + double GetConstValue () const + { + return m_constValue; + } + + virtual int GetSourceModuleCount () const + { + return 0; + } + + virtual double GetValue (double x, double y, double z) const + { + return m_constValue; + } + + /// Sets the constant output value for this noise module. + /// + /// @param constValue The constant output value for this noise module. + void SetConstValue (double constValue) + { + m_constValue = constValue; + } + + protected: + + /// Constant value. + double m_constValue; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,143 @@+// curve.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "../interp.h" +#include "../misc.h" +#include "curve.h" + +using namespace noise::module; + +Curve::Curve (): + Module (GetSourceModuleCount ()), + m_pControlPoints (NULL) +{ + m_controlPointCount = 0; +} + +Curve::~Curve () +{ + delete[] m_pControlPoints; +} + +void Curve::AddControlPoint (double inputValue, double outputValue) +{ + // Find the insertion point for the new control point and insert the new + // point at that position. The control point array will remain sorted by + // input value. + int insertionPos = FindInsertionPos (inputValue); + InsertAtPos (insertionPos, inputValue, outputValue); +} + +void Curve::ClearAllControlPoints () +{ + delete[] m_pControlPoints; + m_pControlPoints = NULL; + m_controlPointCount = 0; +} + +int Curve::FindInsertionPos (double inputValue) +{ + int insertionPos; + for (insertionPos = 0; insertionPos < m_controlPointCount; insertionPos++) { + if (inputValue < m_pControlPoints[insertionPos].inputValue) { + // We found the array index in which to insert the new control point. + // Exit now. + break; + } else if (inputValue == m_pControlPoints[insertionPos].inputValue) { + // Each control point is required to contain a unique input value, so + // throw an exception. + throw noise::ExceptionInvalidParam (); + } + } + return insertionPos; +} + +double Curve::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + assert (m_controlPointCount >= 4); + + // Get the output value from the source module. + double sourceModuleValue = m_pSourceModule[0]->GetValue (x, y, z); + + // Find the first element in the control point array that has an input value + // larger than the output value from the source module. + int indexPos; + for (indexPos = 0; indexPos < m_controlPointCount; indexPos++) { + if (sourceModuleValue < m_pControlPoints[indexPos].inputValue) { + break; + } + } + + // Find the four nearest control points so that we can perform cubic + // interpolation. + int index0 = ClampValue (indexPos - 2, 0, m_controlPointCount - 1); + int index1 = ClampValue (indexPos - 1, 0, m_controlPointCount - 1); + int index2 = ClampValue (indexPos , 0, m_controlPointCount - 1); + int index3 = ClampValue (indexPos + 1, 0, m_controlPointCount - 1); + + // If some control points are missing (which occurs if the value from the + // source module is greater than the largest input value or less than the + // smallest input value of the control point array), get the corresponding + // output value of the nearest control point and exit now. + if (index1 == index2) { + return m_pControlPoints[index1].outputValue; + } + + // Compute the alpha value used for cubic interpolation. + double input0 = m_pControlPoints[index1].inputValue; + double input1 = m_pControlPoints[index2].inputValue; + double alpha = (sourceModuleValue - input0) / (input1 - input0); + + // Now perform the cubic interpolation given the alpha value. + return CubicInterp ( + m_pControlPoints[index0].outputValue, + m_pControlPoints[index1].outputValue, + m_pControlPoints[index2].outputValue, + m_pControlPoints[index3].outputValue, + alpha); +} + +void Curve::InsertAtPos (int insertionPos, double inputValue, + double outputValue) +{ + // Make room for the new control point at the specified position within the + // control point array. The position is determined by the input value of + // the control point; the control points must be sorted by input value + // within that array. + ControlPoint* newControlPoints = new ControlPoint[m_controlPointCount + 1]; + for (int i = 0; i < m_controlPointCount; i++) { + if (i < insertionPos) { + newControlPoints[i] = m_pControlPoints[i]; + } else { + newControlPoints[i + 1] = m_pControlPoints[i]; + } + } + delete[] m_pControlPoints; + m_pControlPoints = newControlPoints; + ++m_controlPointCount; + + // Now that we've made room for the new control point within the array, add + // the new control point. + m_pControlPoints[insertionPos].inputValue = inputValue ; + m_pControlPoints[insertionPos].outputValue = outputValue; +}
@@ -0,0 +1,197 @@+// curve.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_CURVE_H +#define NOISE_MODULE_CURVE_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// This structure defines a control point. + /// + /// Control points are used for defining splines. + struct ControlPoint + { + + /// The input value. + double inputValue; + + /// The output value that is mapped from the input value. + double outputValue; + + }; + + /// @addtogroup modules + /// @{ + + /// @addtogroup modifiermodules + /// @{ + + /// Noise module that maps the output value from a source module onto an + /// arbitrary function curve. + /// + /// @image html modulecurve.png + /// + /// This noise module maps the output value from the source module onto an + /// application-defined curve. This curve is defined by a number of + /// <i>control points</i>; each control point has an <i>input value</i> + /// that maps to an <i>output value</i>. Refer to the following + /// illustration: + /// + /// @image html curve.png + /// + /// To add the control points to this curve, call the AddControlPoint() + /// method. + /// + /// Since this curve is a cubic spline, an application must add a minimum + /// of four control points to the curve. If this is not done, the + /// GetValue() method fails. Each control point can have any input and + /// output value, although no two control points can have the same input + /// value. There is no limit to the number of control points that can be + /// added to the curve. + /// + /// This noise module requires one source module. + class Curve: public Module + { + + public: + + /// Constructor. + Curve (); + + /// Destructor. + ~Curve (); + + /// Adds a control point to the curve. + /// + /// @param inputValue The input value stored in the control point. + /// @param outputValue The output value stored in the control point. + /// + /// @pre No two control points have the same input value. + /// + /// @throw noise::ExceptionInvalidParam An invalid parameter was + /// specified; see the preconditions for more information. + /// + /// It does not matter which order these points are added. + void AddControlPoint (double inputValue, double outputValue); + + /// Deletes all the control points on the curve. + /// + /// @post All points on the curve are deleted. + void ClearAllControlPoints (); + + /// Returns a pointer to the array of control points on the curve. + /// + /// @returns A pointer to the array of control points. + /// + /// Before calling this method, call GetControlPointCount() to + /// determine the number of control points in this array. + /// + /// It is recommended that an application does not store this pointer + /// for later use since the pointer to the array may change if the + /// application calls another method of this object. + const ControlPoint* GetControlPointArray () const + { + return m_pControlPoints; + } + + /// Returns the number of control points on the curve. + /// + /// @returns The number of control points on the curve. + int GetControlPointCount () const + { + return m_controlPointCount; + } + + virtual int GetSourceModuleCount () const + { + return 1; + } + + virtual double GetValue (double x, double y, double z) const; + + protected: + + /// Determines the array index in which to insert the control point + /// into the internal control point array. + /// + /// @param inputValue The input value of the control point. + /// + /// @returns The array index in which to insert the control point. + /// + /// @pre No two control points have the same input value. + /// + /// @throw noise::ExceptionInvalidParam An invalid parameter was + /// specified; see the preconditions for more information. + /// + /// By inserting the control point at the returned array index, this + /// class ensures that the control point array is sorted by input + /// value. The code that maps a value onto the curve requires a + /// sorted control point array. + int FindInsertionPos (double inputValue); + + /// Inserts the control point at the specified position in the + /// internal control point array. + /// + /// @param insertionPos The zero-based array position in which to + /// insert the control point. + /// @param inputValue The input value stored in the control point. + /// @param outputValue The output value stored in the control point. + /// + /// To make room for this new control point, this method reallocates + /// the control point array and shifts all control points occurring + /// after the insertion position up by one. + /// + /// Because the curve mapping algorithm used by this noise module + /// requires that all control points in the array must be sorted by + /// input value, the new control point should be inserted at the + /// position in which the order is still preserved. + void InsertAtPos (int insertionPos, double inputValue, + double outputValue); + + /// Number of control points on the curve. + int m_controlPointCount; + + /// Array that stores the control points. + ControlPoint* m_pControlPoints; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,44 @@+// cylinders.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "../misc.h" +#include "cylinders.h" + +using namespace noise::module; + +Cylinders::Cylinders (): + Module (GetSourceModuleCount ()), + m_frequency (DEFAULT_CYLINDERS_FREQUENCY) +{ +} + +double Cylinders::GetValue (double x, double y, double z) const +{ + x *= m_frequency; + z *= m_frequency; + + double distFromCenter = sqrt (x * x + z * z); + double distFromSmallerSphere = distFromCenter - floor (distFromCenter); + double distFromLargerSphere = 1.0 - distFromSmallerSphere; + double nearestDist = GetMin (distFromSmallerSphere, distFromLargerSphere); + return 1.0 - (nearestDist * 4.0); // Puts it in the -1.0 to +1.0 range. +}
@@ -0,0 +1,129 @@+// cylinders.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_CYLINDERS_H +#define NOISE_MODULE_CYLINDERS_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup generatormodules + /// @{ + + /// Default frequency value for the noise::module::Cylinders noise module. + const double DEFAULT_CYLINDERS_FREQUENCY = 1.0; + + /// Noise module that outputs concentric cylinders. + /// + /// @image html modulecylinders.png + /// + /// This noise module outputs concentric cylinders centered on the origin. + /// These cylinders are oriented along the @a y axis similar to the + /// concentric rings of a tree. Each cylinder extends infinitely along + /// the @a y axis. + /// + /// The first cylinder has a radius of 1.0. Each subsequent cylinder has + /// a radius that is 1.0 unit larger than the previous cylinder. + /// + /// The output value from this noise module is determined by the distance + /// between the input value and the the nearest cylinder surface. The + /// input values that are located on a cylinder surface are given the + /// output value 1.0 and the input values that are equidistant from two + /// cylinder surfaces are given the output value -1.0. + /// + /// An application can change the frequency of the concentric cylinders. + /// Increasing the frequency reduces the distances between cylinders. To + /// specify the frequency, call the SetFrequency() method. + /// + /// This noise module, modified with some low-frequency, low-power + /// turbulence, is useful for generating wood-like textures. + /// + /// This noise module does not require any source modules. + class Cylinders: public Module + { + + public: + + /// Constructor. + /// + /// The default frequency is set to + /// noise::module::DEFAULT_CYLINDERS_FREQUENCY. + Cylinders (); + + /// Returns the frequency of the concentric cylinders. + /// + /// @returns The frequency of the concentric cylinders. + /// + /// Increasing the frequency increases the density of the concentric + /// cylinders, reducing the distances between them. + double GetFrequency () const + { + return m_frequency; + } + + virtual int GetSourceModuleCount () const + { + return 0; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the frequenct of the concentric cylinders. + /// + /// @param frequency The frequency of the concentric cylinders. + /// + /// Increasing the frequency increases the density of the concentric + /// cylinders, reducing the distances between them. + void SetFrequency (double frequency) + { + m_frequency = frequency; + } + + protected: + + /// Frequency of the concentric cylinders. + double m_frequency; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,48 @@+// displace.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "displace.h" + +using namespace noise::module; + +Displace::Displace (): + Module (GetSourceModuleCount ()) +{ +} + +double Displace::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + assert (m_pSourceModule[1] != NULL); + assert (m_pSourceModule[2] != NULL); + assert (m_pSourceModule[3] != NULL); + + // Get the output values from the three displacement modules. Add each + // value to the corresponding coordinate in the input value. + double xDisplace = x + (m_pSourceModule[1]->GetValue (x, y, z)); + double yDisplace = y + (m_pSourceModule[2]->GetValue (x, y, z)); + double zDisplace = z + (m_pSourceModule[3]->GetValue (x, y, z)); + + // Retrieve the output value using the offsetted input value instead of + // the original input value. + return m_pSourceModule[0]->GetValue (xDisplace, yDisplace, zDisplace); +}
@@ -0,0 +1,259 @@+// displace.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_DISPLACE_H +#define NOISE_MODULE_DISPLACE_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @defgroup transformermodules Transformer Modules + /// @addtogroup transformermodules + /// @{ + + /// Noise module that uses three source modules to displace each + /// coordinate of the input value before returning the output value from + /// a source module. + /// + /// @image html moduledisplace.png + /// + /// Unlike most other noise modules, the index value assigned to a source + /// module determines its role in the displacement operation: + /// - Source module 0 (left in the diagram) outputs a value. + /// - Source module 1 (lower left in the diagram) specifies the offset to + /// apply to the @a x coordinate of the input value. + /// - Source module 2 (lower center in the diagram) specifies the + /// offset to apply to the @a y coordinate of the input value. + /// - Source module 3 (lower right in the diagram) specifies the offset + /// to apply to the @a z coordinate of the input value. + /// + /// The GetValue() method modifies the ( @a x, @a y, @a z ) coordinates of + /// the input value using the output values from the three displacement + /// modules before retrieving the output value from the source module. + /// + /// The noise::module::Turbulence noise module is a special case of the + /// displacement module; internally, there are three Perlin-noise modules + /// that perform the displacement operation. + /// + /// This noise module requires four source modules. + class Displace: public Module + { + + public: + + /// Constructor. + Displace (); + + virtual int GetSourceModuleCount () const + { + return 4; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Returns the @a x displacement module. + /// + /// @returns A reference to the @a x displacement module. + /// + /// @pre This displacement module has been added to this noise module + /// via a call to SetSourceModule() or SetXDisplaceModule(). + /// + /// @throw noise::ExceptionNoModule See the preconditions for more + /// information. + /// + /// The GetValue() method displaces the input value by adding the output + /// value from this displacement module to the @a x coordinate of the + /// input value before returning the output value from the source + /// module. + const Module& GetXDisplaceModule () const + { + if (m_pSourceModule == NULL || m_pSourceModule[1] == NULL) { + throw noise::ExceptionNoModule (); + } + return *(m_pSourceModule[1]); + } + + /// Returns the @a y displacement module. + /// + /// @returns A reference to the @a y displacement module. + /// + /// @pre This displacement module has been added to this noise module + /// via a call to SetSourceModule() or SetYDisplaceModule(). + /// + /// @throw noise::ExceptionNoModule See the preconditions for more + /// information. + /// + /// The GetValue() method displaces the input value by adding the output + /// value from this displacement module to the @a y coordinate of the + /// input value before returning the output value from the source + /// module. + const Module& GetYDisplaceModule () const + { + if (m_pSourceModule == NULL || m_pSourceModule[2] == NULL) { + throw noise::ExceptionNoModule (); + } + return *(m_pSourceModule[2]); + } + + /// Returns the @a z displacement module. + /// + /// @returns A reference to the @a z displacement module. + /// + /// @pre This displacement module has been added to this noise module + /// via a call to SetSourceModule() or SetZDisplaceModule(). + /// + /// @throw noise::ExceptionNoModule See the preconditions for more + /// information. + /// + /// The GetValue() method displaces the input value by adding the output + /// value from this displacement module to the @a z coordinate of the + /// input value before returning the output value from the source + /// module. + const Module& GetZDisplaceModule () const + { + if (m_pSourceModule == NULL || m_pSourceModule[3] == NULL) { + throw noise::ExceptionNoModule (); + } + return *(m_pSourceModule[3]); + } + + /// Sets the @a x, @a y, and @a z displacement modules. + /// + /// @param xDisplaceModule Displacement module that displaces the @a x + /// coordinate of the input value. + /// @param yDisplaceModule Displacement module that displaces the @a y + /// coordinate of the input value. + /// @param zDisplaceModule Displacement module that displaces the @a z + /// coordinate of the input value. + /// + /// The GetValue() method displaces the input value by adding the output + /// value from each of the displacement modules to the corresponding + /// coordinates of the input value before returning the output value + /// from the source module. + /// + /// This method assigns an index value of 1 to the @a x displacement + /// module, an index value of 2 to the @a y displacement module, and an + /// index value of 3 to the @a z displacement module. + /// + /// These displacement modules must exist throughout the lifetime of + /// this noise module unless another displacement module replaces it. + void SetDisplaceModules (const Module& xDisplaceModule, + const Module& yDisplaceModule, const Module& zDisplaceModule) + { + SetXDisplaceModule (xDisplaceModule); + SetYDisplaceModule (yDisplaceModule); + SetZDisplaceModule (zDisplaceModule); + } + + /// Sets the @a x displacement module. + /// + /// @param xDisplaceModule Displacement module that displaces the @a x + /// coordinate. + /// + /// The GetValue() method displaces the input value by adding the output + /// value from this displacement module to the @a x coordinate of the + /// input value before returning the output value from the source + /// module. + /// + /// This method assigns an index value of 1 to the @a x displacement + /// module. Passing this displacement module to this method produces + /// the same results as passing this displacement module to the + /// SetSourceModule() method while assigning it an index value of 1. + /// + /// This displacement module must exist throughout the lifetime of this + /// noise module unless another displacement module replaces it. + void SetXDisplaceModule (const Module& xDisplaceModule) + { + assert (m_pSourceModule != NULL); + m_pSourceModule[1] = &xDisplaceModule; + } + + /// Sets the @a y displacement module. + /// + /// @param yDisplaceModule Displacement module that displaces the @a y + /// coordinate. + /// + /// The GetValue() method displaces the input value by adding the output + /// value from this displacement module to the @a y coordinate of the + /// input value before returning the output value from the source + /// module. + /// + /// This method assigns an index value of 2 to the @a y displacement + /// module. Passing this displacement module to this method produces + /// the same results as passing this displacement module to the + /// SetSourceModule() method while assigning it an index value of 2. + /// + /// This displacement module must exist throughout the lifetime of this + /// noise module unless another displacement module replaces it. + void SetYDisplaceModule (const Module& yDisplaceModule) + { + assert (m_pSourceModule != NULL); + m_pSourceModule[2] = &yDisplaceModule; + } + + /// Sets the @a z displacement module. + /// + /// @param zDisplaceModule Displacement module that displaces the @a z + /// coordinate. + /// + /// The GetValue() method displaces the input value by adding the output + /// value from this displacement module to the @a z coordinate of the + /// input value before returning the output value from the source + /// module. + /// + /// This method assigns an index value of 3 to the @a z displacement + /// module. Passing this displacement module to this method produces + /// the same results as passing this displacement module to the + /// SetSourceModule() method while assigning it an index value of 3. + /// + /// This displacement module must exist throughout the lifetime of this + /// noise module unless another displacement module replaces it. + void SetZDisplaceModule (const Module& zDisplaceModule) + { + assert (m_pSourceModule != NULL); + m_pSourceModule[3] = &zDisplaceModule; + } + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,39 @@+// exponent.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "exponent.h" + +using namespace noise::module; + +Exponent::Exponent (): + Module (GetSourceModuleCount ()), + m_exponent (DEFAULT_EXPONENT) +{ +} + +double Exponent::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + + double value = m_pSourceModule[0]->GetValue (x, y, z); + return (pow (fabs ((value + 1.0) / 2.0), m_exponent) * 2.0 - 1.0); +}
@@ -0,0 +1,119 @@+// exponent.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_EXPONENT_H +#define NOISE_MODULE_EXPONENT_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup modifiermodules + /// @{ + + /// Default exponent for the noise::module::Exponent noise module. + const double DEFAULT_EXPONENT = 1.0; + + /// Noise module that maps the output value from a source module onto an + /// exponential curve. + /// + /// @image html moduleexponent.png + /// + /// Because most noise modules will output values that range from -1.0 to + /// +1.0, this noise module first normalizes this output value (the range + /// becomes 0.0 to 1.0), maps that value onto an exponential curve, then + /// rescales that value back to the original range. + /// + /// This noise module requires one source module. + class Exponent: public Module + { + + public: + + /// Constructor. + /// + /// The default exponent is set to noise::module::DEFAULT_EXPONENT. + Exponent (); + + /// Returns the exponent value to apply to the output value from the + /// source module. + /// + /// @returns The exponent value. + /// + /// Because most noise modules will output values that range from -1.0 + /// to +1.0, this noise module first normalizes this output value (the + /// range becomes 0.0 to 1.0), maps that value onto an exponential + /// curve, then rescales that value back to the original range. + double GetExponent () const + { + return m_exponent; + } + + virtual int GetSourceModuleCount () const + { + return 1; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the exponent value to apply to the output value from the + /// source module. + /// + /// @param exponent The exponent value. + /// + /// Because most noise modules will output values that range from -1.0 + /// to +1.0, this noise module first normalizes this output value (the + /// range becomes 0.0 to 1.0), maps that value onto an exponential + /// curve, then rescales that value back to the original range. + void SetExponent (double exponent) + { + m_exponent = exponent; + } + + protected: + + /// Exponent to apply to the output value from the source module. + double m_exponent; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,37 @@+// invert.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "invert.h" + +using namespace noise::module; + +Invert::Invert (): + Module (GetSourceModuleCount ()) +{ +} + +double Invert::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + + return -(m_pSourceModule[0]->GetValue (x, y, z)); +}
@@ -0,0 +1,75 @@+// invert.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_INVERT_H +#define NOISE_MODULE_INVERT_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup modifiermodules + /// @{ + + /// Noise module that inverts the output value from a source module. + /// + /// @image html moduleinvert.png + /// + /// This noise module requires one source module. + class Invert: public Module + { + + public: + + /// Constructor. + Invert (); + + virtual int GetSourceModuleCount () const + { + return 1; + } + + virtual double GetValue (double x, double y, double z) const; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,41 @@+// max.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "../misc.h" +#include "max.h" + +using namespace noise::module; + +Max::Max (): + Module (GetSourceModuleCount ()) +{ +} + +double Max::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + assert (m_pSourceModule[1] != NULL); + + double v0 = m_pSourceModule[0]->GetValue (x, y, z); + double v1 = m_pSourceModule[1]->GetValue (x, y, z); + return GetMax (v0, v1); +}
@@ -0,0 +1,76 @@+// max.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_MAX_H +#define NOISE_MODULE_MAX_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup combinermodules + /// @{ + + /// Noise module that outputs the larger of the two output values from two + /// source modules. + /// + /// @image html modulemax.png + /// + /// This noise module requires two source modules. + class Max: public Module + { + + public: + + /// Constructor. + Max (); + + virtual int GetSourceModuleCount () const + { + return 2; + } + + virtual double GetValue (double x, double y, double z) const; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,41 @@+// min.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "../misc.h" +#include "min.h" + +using namespace noise::module; + +Min::Min (): + Module (GetSourceModuleCount ()) +{ +} + +double Min::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + assert (m_pSourceModule[1] != NULL); + + double v0 = m_pSourceModule[0]->GetValue (x, y, z); + double v1 = m_pSourceModule[1]->GetValue (x, y, z); + return GetMin (v0, v1); +}
@@ -0,0 +1,76 @@+// min.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_MIN_H +#define NOISE_MODULE_MIN_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup combinermodules + /// @{ + + /// Noise module that outputs the smaller of the two output values from + /// two source modules. + /// + /// @image html modulemin.png + /// + /// This noise module requires two source modules. + class Min: public Module + { + + public: + + /// Constructor. + Min (); + + virtual int GetSourceModuleCount () const + { + return 2; + } + + virtual double GetValue (double x, double y, double z) const; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,55 @@+// module.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_H +#define NOISE_MODULE_H + +#include "add.h" +#include "abs.h" +#include "billow.h" +#include "blend.h" +#include "cache.h" +#include "checkerboard.h" +#include "clamp.h" +#include "const.h" +#include "curve.h" +#include "cylinders.h" +#include "displace.h" +#include "exponent.h" +#include "invert.h" +#include "max.h" +#include "min.h" +#include "multiply.h" +#include "perlin.h" +#include "power.h" +#include "ridgedmulti.h" +#include "rotatepoint.h" +#include "scalebias.h" +#include "scalepoint.h" +#include "select.h" +#include "spheres.h" +#include "terrace.h" +#include "translatepoint.h" +#include "turbulence.h" +#include "voronoi.h" + +#endif
@@ -0,0 +1,46 @@+// modulebase.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "modulebase.h" + +using namespace noise::module; + +Module::Module (int sourceModuleCount) +{ + m_pSourceModule = NULL; + + // Create an array of pointers to all source modules required by this + // noise module. Set these pointers to NULL. + if (sourceModuleCount > 0) { + m_pSourceModule = new const Module*[sourceModuleCount]; + for (int i = 0; i < sourceModuleCount; i++) { + m_pSourceModule[i] = NULL; + } + } else { + m_pSourceModule = NULL; + } +} + +Module::~Module () +{ + delete[] m_pSourceModule; +}
@@ -0,0 +1,366 @@+// modulebase.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULEBASE_H +#define NOISE_MODULEBASE_H + +#include <stdlib.h> +#include <assert.h> +#include <math.h> +#include "../basictypes.h" +#include "../exception.h" +#include "../noisegen.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @defgroup modules Noise Modules + /// @addtogroup modules + /// @{ + + /// Abstract base class for noise modules. + /// + /// A <i>noise module</i> is an object that calculates and outputs a value + /// given a three-dimensional input value. + /// + /// Each type of noise module uses a specific method to calculate an + /// output value. Some of these methods include: + /// + /// - Calculating a value using a coherent-noise function or some other + /// mathematical function. + /// - Mathematically changing the output value from another noise module + /// in various ways. + /// - Combining the output values from two noise modules in various ways. + /// + /// An application can use the output values from these noise modules in + /// the following ways: + /// + /// - It can be used as an elevation value for a terrain height map + /// - It can be used as a grayscale (or an RGB-channel) value for a + /// procedural texture + /// - It can be used as a position value for controlling the movement of a + /// simulated lifeform. + /// + /// A noise module defines a near-infinite 3-dimensional texture. Each + /// position in this "texture" has a specific value. + /// + /// <b>Combining noise modules</b> + /// + /// Noise modules can be combined with other noise modules to generate + /// complex output values. A noise module that is used as a source of + /// output values for another noise module is called a <i>source + /// module</i>. Each of these source modules may be connected to other + /// source modules, and so on. + /// + /// There is no limit to the number of noise modules that can be connected + /// together in this way. However, each connected noise module increases + /// the time required to calculate an output value. + /// + /// <b>Noise-module categories</b> + /// + /// The noise module classes that are included in libnoise can be roughly + /// divided into five categories. + /// + /// <i>Generator Modules</i> + /// + /// A generator module outputs a value generated by a coherent-noise + /// function or some other mathematical function. + /// + /// Examples of generator modules include: + /// - noise::module::Const: Outputs a constant value. + /// - noise::module::Perlin: Outputs a value generated by a Perlin-noise + /// function. + /// - noise::module::Voronoi: Outputs a value generated by a Voronoi-cell + /// function. + /// + /// <i>Modifier Modules</i> + /// + /// A modifer module mathematically modifies the output value from a + /// source module. + /// + /// Examples of modifier modules include: + /// - noise::module::Curve: Maps the output value from the source module + /// onto an arbitrary function curve. + /// - noise::module::Invert: Inverts the output value from the source + /// module. + /// + /// <i>Combiner Modules</i> + /// + /// A combiner module mathematically combines the output values from two + /// or more source modules together. + /// + /// Examples of combiner modules include: + /// - noise::module::Add: Adds the two output values from two source + /// modules. + /// - noise::module::Max: Outputs the larger of the two output values from + /// two source modules. + /// + /// <i>Selector Modules</i> + /// + /// A selector module uses the output value from a <i>control module</i> + /// to specify how to combine the output values from its source modules. + /// + /// Examples of selector modules include: + /// - noise::module::Blend: Outputs a value that is linearly interpolated + /// between the output values from two source modules; the interpolation + /// weight is determined by the output value from the control module. + /// - noise::module::Select: Outputs the value selected from one of two + /// source modules chosen by the output value from a control module. + /// + /// <i>Transformer Modules</i> + /// + /// A transformer module applies a transformation to the coordinates of + /// the input value before retrieving the output value from the source + /// module. A transformer module does not modify the output value. + /// + /// Examples of transformer modules include: + /// - RotatePoint: Rotates the coordinates of the input value around the + /// origin before retrieving the output value from the source module. + /// - ScalePoint: Multiplies each coordinate of the input value by a + /// constant value before retrieving the output value from the source + /// module. + /// + /// <b>Connecting source modules to a noise module</b> + /// + /// An application connects a source module to a noise module by passing + /// the source module to the SetSourceModule() method. + /// + /// The application must also pass an <i>index value</i> to + /// SetSourceModule() as well. An index value is a numeric identifier for + /// that source module. Index values are consecutively numbered starting + /// at zero. + /// + /// To retrieve a reference to a source module, pass its index value to + /// the GetSourceModule() method. + /// + /// Each noise module requires the attachment of a certain number of + /// source modules before it can output a value. For example, the + /// noise::module::Add module requires two source modules, while the + /// noise::module::Perlin module requires none. Call the + /// GetSourceModuleCount() method to retrieve the number of source modules + /// required by that module. + /// + /// For non-selector modules, it usually does not matter which index value + /// an application assigns to a particular source module, but for selector + /// modules, the purpose of a source module is defined by its index value. + /// For example, consider the noise::module::Select noise module, which + /// requires three source modules. The control module is the source + /// module assigned an index value of 2. The control module determines + /// whether the noise module will output the value from the source module + /// assigned an index value of 0 or the output value from the source + /// module assigned an index value of 1. + /// + /// <b>Generating output values with a noise module</b> + /// + /// Once an application has connected all required source modules to a + /// noise module, the application can now begin to generate output values + /// with that noise module. + /// + /// To generate an output value, pass the ( @a x, @a y, @a z ) coordinates + /// of an input value to the GetValue() method. + /// + /// <b>Using a noise module to generate terrain height maps or textures</b> + /// + /// One way to generate a terrain height map or a texture is to first + /// allocate a 2-dimensional array of floating-point values. For each + /// array element, pass the array subscripts as @a x and @a y coordinates + /// to the GetValue() method (leaving the @a z coordinate set to zero) and + /// place the resulting output value into the array element. + /// + /// <b>Creating your own noise modules</b> + /// + /// Create a class that publicly derives from noise::module::Module. + /// + /// In the constructor, call the base class' constructor while passing the + /// return value from GetSourceModuleCount() to it. + /// + /// Override the GetSourceModuleCount() pure virtual method. From this + /// method, return the number of source modules required by your noise + /// module. + /// + /// Override the GetValue() pure virtual method. For generator modules, + /// calculate and output a value given the coordinates of the input value. + /// For other modules, retrieve the output values from each source module + /// referenced in the protected @a m_pSourceModule array, mathematically + /// combine those values, and return the combined value. + /// + /// When developing a noise module, you must ensure that your noise module + /// does not modify any source module or control module connected to it; a + /// noise module can only modify the output value from those source + /// modules. You must also ensure that if an application fails to connect + /// all required source modules via the SetSourceModule() method and then + /// attempts to call the GetValue() method, your module will raise an + /// assertion. + /// + /// It shouldn't be too difficult to create your own noise module. If you + /// still have some problems, take a look at the source code for + /// noise::module::Add, which is a very simple noise module. + class Module + { + + public: + + /// Constructor. + Module (int sourceModuleCount); + + /// Destructor. + virtual ~Module (); + + /// Returns a reference to a source module connected to this noise + /// module. + /// + /// @param index The index value assigned to the source module. + /// + /// @returns A reference to the source module. + /// + /// @pre The index value ranges from 0 to one less than the number of + /// source modules required by this noise module. + /// @pre A source module with the specified index value has been added + /// to this noise module via a call to SetSourceModule(). + /// + /// @throw noise::ExceptionNoModule See the preconditions for more + /// information. + /// + /// Each noise module requires the attachment of a certain number of + /// source modules before an application can call the GetValue() + /// method. + virtual const Module& GetSourceModule (int index) const + { + assert (m_pSourceModule != NULL); + + // The following fix was provided by Will Hawkins: + // + // m_pSourceModule[index] != NULL + // + // was incorrect; it should be: + // + // m_pSourceModule[index] == NULL + if (index >= GetSourceModuleCount () || index < 0 + || m_pSourceModule[index] == NULL) { + throw noise::ExceptionNoModule (); + } + return *(m_pSourceModule[index]); + } + + /// Returns the number of source modules required by this noise + /// module. + /// + /// @returns The number of source modules required by this noise + /// module. + virtual int GetSourceModuleCount () const = 0; + + /// Generates an output value given the coordinates of the specified + /// input value. + /// + /// @param x The @a x coordinate of the input value. + /// @param y The @a y coordinate of the input value. + /// @param z The @a z coordinate of the input value. + /// + /// @returns The output value. + /// + /// @pre All source modules required by this noise module have been + /// passed to the SetSourceModule() method. + /// + /// Before an application can call this method, it must first connect + /// all required source modules via the SetSourceModule() method. If + /// these source modules are not connected to this noise module, this + /// method raises a debug assertion. + /// + /// To determine the number of source modules required by this noise + /// module, call the GetSourceModuleCount() method. + virtual double GetValue (double x, double y, double z) const = 0; + + /// Connects a source module to this noise module. + /// + /// @param index An index value to assign to this source module. + /// @param sourceModule The source module to attach. + /// + /// @pre The index value ranges from 0 to one less than the number of + /// source modules required by this noise module. + /// + /// @throw noise::ExceptionInvalidParam An invalid parameter was + /// specified; see the preconditions for more information. + /// + /// A noise module mathematically combines the output values from the + /// source modules to generate the value returned by GetValue(). + /// + /// The index value to assign a source module is a unique identifier + /// for that source module. If an index value has already been + /// assigned to a source module, this noise module replaces the old + /// source module with the new source module. + /// + /// Before an application can call the GetValue() method, it must + /// first connect all required source modules. To determine the + /// number of source modules required by this noise module, call the + /// GetSourceModuleCount() method. + /// + /// This source module must exist throughout the lifetime of this + /// noise module unless another source module replaces that source + /// module. + /// + /// A noise module does not modify a source module; it only modifies + /// its output values. + virtual void SetSourceModule (int index, const Module& sourceModule) + { + assert (m_pSourceModule != NULL); + if (index >= GetSourceModuleCount () || index < 0) { + throw noise::ExceptionInvalidParam (); + } + m_pSourceModule[index] = &sourceModule; + } + + protected: + + /// An array containing the pointers to each source module required by + /// this noise module. + const Module** m_pSourceModule; + + private: + + /// Assignment operator. + /// + /// This assignment operator does nothing and cannot be overridden. + /// This restriction is necessary because if this object was copied, + /// all source modules assigned to this noise module would need to be + /// copied as well. + const Module& operator= (const Module& m) + { + return *this; + } + + }; + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,39 @@+// multiply.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "multiply.h" + +using namespace noise::module; + +Multiply::Multiply (): + Module (GetSourceModuleCount ()) +{ +} + +double Multiply::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + assert (m_pSourceModule[1] != NULL); + + return m_pSourceModule[0]->GetValue (x, y, z) + * m_pSourceModule[1]->GetValue (x, y, z); +}
@@ -0,0 +1,76 @@+// multiply.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_MULTIPLY_H +#define NOISE_MODULE_MULTIPLY_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup combinermodules + /// @{ + + /// Noise module that outputs the product of the two output values from + /// two source modules. + /// + /// @image html modulemultiply.png + /// + /// This noise module requires two source modules. + class Multiply: public Module + { + + public: + + /// Constructor. + Multiply (); + + virtual int GetSourceModuleCount () const + { + return 2; + } + + virtual double GetValue (double x, double y, double z) const; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,72 @@+// perlin.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "perlin.h" + +using namespace noise::module; + +Perlin::Perlin (): + Module (GetSourceModuleCount ()), + m_frequency (DEFAULT_PERLIN_FREQUENCY ), + m_lacunarity (DEFAULT_PERLIN_LACUNARITY ), + m_noiseQuality (DEFAULT_PERLIN_QUALITY ), + m_octaveCount (DEFAULT_PERLIN_OCTAVE_COUNT), + m_persistence (DEFAULT_PERLIN_PERSISTENCE ), + m_seed (DEFAULT_PERLIN_SEED) +{ +} + +double Perlin::GetValue (double x, double y, double z) const +{ + double value = 0.0; + double signal = 0.0; + double curPersistence = 1.0; + double nx, ny, nz; + int seed; + + x *= m_frequency; + y *= m_frequency; + z *= m_frequency; + + for (int curOctave = 0; curOctave < m_octaveCount; curOctave++) { + + // Make sure that these floating-point values have the same range as a 32- + // bit integer so that we can pass them to the coherent-noise functions. + nx = MakeInt32Range (x); + ny = MakeInt32Range (y); + nz = MakeInt32Range (z); + + // Get the coherent-noise value from the input value and add it to the + // final result. + seed = (m_seed + curOctave) & 0xffffffff; + signal = GradientCoherentNoise3D (nx, ny, nz, seed, m_noiseQuality); + value += signal * curPersistence; + + // Prepare the next octave. + x *= m_lacunarity; + y *= m_lacunarity; + z *= m_lacunarity; + curPersistence *= m_persistence; + } + + return value; +}
@@ -0,0 +1,359 @@+// perlin.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_PERLIN_H +#define NOISE_MODULE_PERLIN_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup generatormodules + /// @{ + + /// Default frequency for the noise::module::Perlin noise module. + const double DEFAULT_PERLIN_FREQUENCY = 1.0; + + /// Default lacunarity for the noise::module::Perlin noise module. + const double DEFAULT_PERLIN_LACUNARITY = 2.0; + + /// Default number of octaves for the noise::module::Perlin noise module. + const int DEFAULT_PERLIN_OCTAVE_COUNT = 6; + + /// Default persistence value for the noise::module::Perlin noise module. + const double DEFAULT_PERLIN_PERSISTENCE = 0.5; + + /// Default noise quality for the noise::module::Perlin noise module. + const noise::NoiseQuality DEFAULT_PERLIN_QUALITY = QUALITY_STD; + + /// Default noise seed for the noise::module::Perlin noise module. + const int DEFAULT_PERLIN_SEED = 0; + + /// Maximum number of octaves for the noise::module::Perlin noise module. + const int PERLIN_MAX_OCTAVE = 30; + + /// Noise module that outputs 3-dimensional Perlin noise. + /// + /// @image html moduleperlin.png + /// + /// Perlin noise is the sum of several coherent-noise functions of + /// ever-increasing frequencies and ever-decreasing amplitudes. + /// + /// An important property of Perlin noise is that a small change in the + /// input value will produce a small change in the output value, while a + /// large change in the input value will produce a random change in the + /// output value. + /// + /// This noise module outputs Perlin-noise values that usually range from + /// -1.0 to +1.0, but there are no guarantees that all output values will + /// exist within that range. + /// + /// For a better description of Perlin noise, see the links in the + /// <i>References and Acknowledgments</i> section. + /// + /// This noise module does not require any source modules. + /// + /// <b>Octaves</b> + /// + /// The number of octaves control the <i>amount of detail</i> of the + /// Perlin noise. Adding more octaves increases the detail of the Perlin + /// noise, but with the drawback of increasing the calculation time. + /// + /// An octave is one of the coherent-noise functions in a series of + /// coherent-noise functions that are added together to form Perlin + /// noise. + /// + /// An application may specify the frequency of the first octave by + /// calling the SetFrequency() method. + /// + /// An application may specify the number of octaves that generate Perlin + /// noise by calling the SetOctaveCount() method. + /// + /// These coherent-noise functions are called octaves because each octave + /// has, by default, double the frequency of the previous octave. Musical + /// tones have this property as well; a musical C tone that is one octave + /// higher than the previous C tone has double its frequency. + /// + /// <b>Frequency</b> + /// + /// An application may specify the frequency of the first octave by + /// calling the SetFrequency() method. + /// + /// <b>Persistence</b> + /// + /// The persistence value controls the <i>roughness</i> of the Perlin + /// noise. Larger values produce rougher noise. + /// + /// The persistence value determines how quickly the amplitudes diminish + /// for successive octaves. The amplitude of the first octave is 1.0. + /// The amplitude of each subsequent octave is equal to the product of the + /// previous octave's amplitude and the persistence value. So a + /// persistence value of 0.5 sets the amplitude of the first octave to + /// 1.0; the second, 0.5; the third, 0.25; etc. + /// + /// An application may specify the persistence value by calling the + /// SetPersistence() method. + /// + /// <b>Lacunarity</b> + /// + /// The lacunarity specifies the frequency multipler between successive + /// octaves. + /// + /// The effect of modifying the lacunarity is subtle; you may need to play + /// with the lacunarity value to determine the effects. For best results, + /// set the lacunarity to a number between 1.5 and 3.5. + /// + /// <b>References & acknowledgments</b> + /// + /// <a href=http://www.noisemachine.com/talk1/>The Noise Machine</a> - + /// From the master, Ken Perlin himself. This page contains a + /// presentation that describes Perlin noise and some of its variants. + /// He won an Oscar for creating the Perlin noise algorithm! + /// + /// <a + /// href=http://freespace.virgin.net/hugo.elias/models/m_perlin.htm> + /// Perlin Noise</a> - Hugo Elias's webpage contains a very good + /// description of Perlin noise and describes its many applications. This + /// page gave me the inspiration to create libnoise in the first place. + /// Now that I know how to generate Perlin noise, I will never again use + /// cheesy subdivision algorithms to create terrain (unless I absolutely + /// need the speed.) + /// + /// <a + /// href=http://www.robo-murito.net/code/perlin-noise-math-faq.html>The + /// Perlin noise math FAQ</a> - A good page that describes Perlin noise in + /// plain English with only a minor amount of math. During development of + /// libnoise, I noticed that my coherent-noise function generated terrain + /// with some "regularity" to the terrain features. This page describes a + /// better coherent-noise function called <i>gradient noise</i>. This + /// version of noise::module::Perlin uses gradient coherent noise to + /// generate Perlin noise. + class Perlin: public Module + { + + public: + + /// Constructor. + /// + /// The default frequency is set to + /// noise::module::DEFAULT_PERLIN_FREQUENCY. + /// + /// The default lacunarity is set to + /// noise::module::DEFAULT_PERLIN_LACUNARITY. + /// + /// The default number of octaves is set to + /// noise::module::DEFAULT_PERLIN_OCTAVE_COUNT. + /// + /// The default persistence value is set to + /// noise::module::DEFAULT_PERLIN_PERSISTENCE. + /// + /// The default seed value is set to + /// noise::module::DEFAULT_PERLIN_SEED. + Perlin (); + + /// Returns the frequency of the first octave. + /// + /// @returns The frequency of the first octave. + double GetFrequency () const + { + return m_frequency; + } + + /// Returns the lacunarity of the Perlin noise. + /// + /// @returns The lacunarity of the Perlin noise. + /// + /// The lacunarity is the frequency multiplier between successive + /// octaves. + double GetLacunarity () const + { + return m_lacunarity; + } + + /// Returns the quality of the Perlin noise. + /// + /// @returns The quality of the Perlin noise. + /// + /// See noise::NoiseQuality for definitions of the various + /// coherent-noise qualities. + noise::NoiseQuality GetNoiseQuality () const + { + return m_noiseQuality; + } + + /// Returns the number of octaves that generate the Perlin noise. + /// + /// @returns The number of octaves that generate the Perlin noise. + /// + /// The number of octaves controls the amount of detail in the Perlin + /// noise. + int GetOctaveCount () const + { + return m_octaveCount; + } + + /// Returns the persistence value of the Perlin noise. + /// + /// @returns The persistence value of the Perlin noise. + /// + /// The persistence value controls the roughness of the Perlin noise. + double GetPersistence () const + { + return m_persistence; + } + + /// Returns the seed value used by the Perlin-noise function. + /// + /// @returns The seed value. + int GetSeed () const + { + return m_seed; + } + + virtual int GetSourceModuleCount () const + { + return 0; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the frequency of the first octave. + /// + /// @param frequency The frequency of the first octave. + void SetFrequency (double frequency) + { + m_frequency = frequency; + } + + /// Sets the lacunarity of the Perlin noise. + /// + /// @param lacunarity The lacunarity of the Perlin noise. + /// + /// The lacunarity is the frequency multiplier between successive + /// octaves. + /// + /// For best results, set the lacunarity to a number between 1.5 and + /// 3.5. + void SetLacunarity (double lacunarity) + { + m_lacunarity = lacunarity; + } + + /// Sets the quality of the Perlin noise. + /// + /// @param noiseQuality The quality of the Perlin noise. + /// + /// See noise::NoiseQuality for definitions of the various + /// coherent-noise qualities. + void SetNoiseQuality (noise::NoiseQuality noiseQuality) + { + m_noiseQuality = noiseQuality; + } + + /// Sets the number of octaves that generate the Perlin noise. + /// + /// @param octaveCount The number of octaves that generate the Perlin + /// noise. + /// + /// @pre The number of octaves ranges from 1 to + /// noise::module::PERLIN_MAX_OCTAVE. + /// + /// @throw noise::ExceptionInvalidParam An invalid parameter was + /// specified; see the preconditions for more information. + /// + /// The number of octaves controls the amount of detail in the Perlin + /// noise. + /// + /// The larger the number of octaves, the more time required to + /// calculate the Perlin-noise value. + void SetOctaveCount (int octaveCount) + { + if (octaveCount < 1 || octaveCount > PERLIN_MAX_OCTAVE) { + throw noise::ExceptionInvalidParam (); + } + m_octaveCount = octaveCount; + } + + /// Sets the persistence value of the Perlin noise. + /// + /// @param persistence The persistence value of the Perlin noise. + /// + /// The persistence value controls the roughness of the Perlin noise. + /// + /// For best results, set the persistence to a number between 0.0 and + /// 1.0. + void SetPersistence (double persistence) + { + m_persistence = persistence; + } + + /// Sets the seed value used by the Perlin-noise function. + /// + /// @param seed The seed value. + void SetSeed (int seed) + { + m_seed = seed; + } + + protected: + + /// Frequency of the first octave. + double m_frequency; + + /// Frequency multiplier between successive octaves. + double m_lacunarity; + + /// Quality of the Perlin noise. + noise::NoiseQuality m_noiseQuality; + + /// Total number of octaves that generate the Perlin noise. + int m_octaveCount; + + /// Persistence of the Perlin noise. + double m_persistence; + + /// Seed value used by the Perlin-noise function. + int m_seed; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,38 @@+// power.cpp +// +// Copyright (C) 2004 Owen Jacobson +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is angstrom@lionsanctuary.net +// + +#include "power.h" + +using namespace noise::module; + +Power::Power (): + Module (GetSourceModuleCount ()) +{ +} + +double Power::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + assert (m_pSourceModule[1] != NULL); + + return pow (m_pSourceModule[0]->GetValue (x, y, z), + m_pSourceModule[1]->GetValue (x, y, z)); +}
@@ -0,0 +1,80 @@+// power.h +// +// Copyright (C) 2004 Owen Jacobson +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is angstrom@lionsanctuary.net +// + +#ifndef NOISE_MODULE_POWER_H +#define NOISE_MODULE_POWER_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @defgroup combinermodules Combiner Modules + /// @addtogroup combinermodules + /// @{ + + /// Noise module that raises the output value from a first source module + /// to the power of the output value from a second source module. + /// + /// @image html modulepower.png + /// + /// The first source module must have an index value of 0. + /// + /// The second source module must have an index value of 1. + /// + /// This noise module requires two source modules. + class Power: public Module + { + + public: + + /// Constructor. + Power (); + + virtual int GetSourceModuleCount () const + { + return 2; + } + + virtual double GetValue (double x, double y, double z) const; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,114 @@+// ridgedmulti.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "ridgedmulti.h" + +using namespace noise::module; + +RidgedMulti::RidgedMulti (): + Module (GetSourceModuleCount ()), + m_frequency (DEFAULT_RIDGED_FREQUENCY ), + m_lacunarity (DEFAULT_RIDGED_LACUNARITY ), + m_noiseQuality (DEFAULT_RIDGED_QUALITY ), + m_octaveCount (DEFAULT_RIDGED_OCTAVE_COUNT), + m_seed (DEFAULT_RIDGED_SEED) +{ + CalcSpectralWeights (); +} + +// Calculates the spectral weights for each octave. +void RidgedMulti::CalcSpectralWeights () +{ + // This exponent parameter should be user-defined; it may be exposed in a + // future version of libnoise. + double h = 1.0; + + double frequency = 1.0; + for (int i = 0; i < RIDGED_MAX_OCTAVE; i++) { + // Compute weight for each frequency. + m_pSpectralWeights[i] = pow (frequency, -h); + frequency *= m_lacunarity; + } +} + +// Multifractal code originally written by F. Kenton "Doc Mojo" Musgrave, +// 1998. Modified by jas for use with libnoise. +double RidgedMulti::GetValue (double x, double y, double z) const +{ + x *= m_frequency; + y *= m_frequency; + z *= m_frequency; + + double signal = 0.0; + double value = 0.0; + double weight = 1.0; + + // These parameters should be user-defined; they may be exposed in a + // future version of libnoise. + double offset = 1.0; + double gain = 2.0; + + for (int curOctave = 0; curOctave < m_octaveCount; curOctave++) { + + // Make sure that these floating-point values have the same range as a 32- + // bit integer so that we can pass them to the coherent-noise functions. + double nx, ny, nz; + nx = MakeInt32Range (x); + ny = MakeInt32Range (y); + nz = MakeInt32Range (z); + + // Get the coherent-noise value. + int seed = (m_seed + curOctave) & 0x7fffffff; + signal = GradientCoherentNoise3D (nx, ny, nz, seed, m_noiseQuality); + + // Make the ridges. + signal = fabs (signal); + signal = offset - signal; + + // Square the signal to increase the sharpness of the ridges. + signal *= signal; + + // The weighting from the previous octave is applied to the signal. + // Larger values have higher weights, producing sharp points along the + // ridges. + signal *= weight; + + // Weight successive contributions by the previous signal. + weight = signal * gain; + if (weight > 1.0) { + weight = 1.0; + } + if (weight < 0.0) { + weight = 0.0; + } + + // Add the signal to the output value. + value += (signal * m_pSpectralWeights[curOctave]); + + // Go to the next octave. + x *= m_lacunarity; + y *= m_lacunarity; + z *= m_lacunarity; + } + + return (value * 1.25) - 1.0; +}
@@ -0,0 +1,313 @@+// ridgedmulti.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_RIDGEDMULTI_H +#define NOISE_MODULE_RIDGEDMULTI_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup generatormodules + /// @{ + + /// Default frequency for the noise::module::RidgedMulti noise module. + const double DEFAULT_RIDGED_FREQUENCY = 1.0; + + /// Default lacunarity for the noise::module::RidgedMulti noise module. + const double DEFAULT_RIDGED_LACUNARITY = 2.0; + + /// Default number of octaves for the noise::module::RidgedMulti noise + /// module. + const int DEFAULT_RIDGED_OCTAVE_COUNT = 6; + + /// Default noise quality for the noise::module::RidgedMulti noise + /// module. + const noise::NoiseQuality DEFAULT_RIDGED_QUALITY = QUALITY_STD; + + /// Default noise seed for the noise::module::RidgedMulti noise module. + const int DEFAULT_RIDGED_SEED = 0; + + /// Maximum number of octaves for the noise::module::RidgedMulti noise + /// module. + const int RIDGED_MAX_OCTAVE = 30; + + /// Noise module that outputs 3-dimensional ridged-multifractal noise. + /// + /// @image html moduleridgedmulti.png + /// + /// This noise module, heavily based on the Perlin-noise module, generates + /// ridged-multifractal noise. Ridged-multifractal noise is generated in + /// much of the same way as Perlin noise, except the output of each octave + /// is modified by an absolute-value function. Modifying the octave + /// values in this way produces ridge-like formations. + /// + /// Ridged-multifractal noise does not use a persistence value. This is + /// because the persistence values of the octaves are based on the values + /// generated from from previous octaves, creating a feedback loop (or + /// that's what it looks like after reading the code.) + /// + /// This noise module outputs ridged-multifractal-noise values that + /// usually range from -1.0 to +1.0, but there are no guarantees that all + /// output values will exist within that range. + /// + /// @note For ridged-multifractal noise generated with only one octave, + /// the output value ranges from -1.0 to 0.0. + /// + /// Ridged-multifractal noise is often used to generate craggy mountainous + /// terrain or marble-like textures. + /// + /// This noise module does not require any source modules. + /// + /// <b>Octaves</b> + /// + /// The number of octaves control the <i>amount of detail</i> of the + /// ridged-multifractal noise. Adding more octaves increases the detail + /// of the ridged-multifractal noise, but with the drawback of increasing + /// the calculation time. + /// + /// An application may specify the number of octaves that generate + /// ridged-multifractal noise by calling the SetOctaveCount() method. + /// + /// <b>Frequency</b> + /// + /// An application may specify the frequency of the first octave by + /// calling the SetFrequency() method. + /// + /// <b>Lacunarity</b> + /// + /// The lacunarity specifies the frequency multipler between successive + /// octaves. + /// + /// The effect of modifying the lacunarity is subtle; you may need to play + /// with the lacunarity value to determine the effects. For best results, + /// set the lacunarity to a number between 1.5 and 3.5. + /// + /// <b>References & Acknowledgments</b> + /// + /// <a href=http://www.texturingandmodeling.com/Musgrave.html>F. + /// Kenton "Doc Mojo" Musgrave's texturing page</a> - This page contains + /// links to source code that generates ridged-multfractal noise, among + /// other types of noise. The source file <a + /// href=http://www.texturingandmodeling.com/CODE/MUSGRAVE/CLOUD/fractal.c> + /// fractal.c</a> contains the code I used in my ridged-multifractal class + /// (see the @a RidgedMultifractal() function.) This code was written by F. + /// Kenton Musgrave, the person who created + /// <a href=http://www.pandromeda.com/>MojoWorld</a>. He is also one of + /// the authors in <i>Texturing and Modeling: A Procedural Approach</i> + /// (Morgan Kaufmann, 2002. ISBN 1-55860-848-6.) + class RidgedMulti: public Module + { + + public: + + /// Constructor. + /// + /// The default number of octaves is set to + /// noise::module::DEFAULT_RIDGED_OCTAVE_COUNT. + /// + /// The default frequency is set to + /// noise::module::DEFAULT_RIDGED_FREQUENCY. + /// + /// The default lacunarity is set to + /// noise::module::DEFAULT_RIDGED_LACUNARITY. + /// + /// The default seed value is set to + /// noise::module::DEFAULT_RIDGED_SEED. + RidgedMulti (); + + /// Returns the frequency of the first octave. + /// + /// @returns The frequency of the first octave. + double GetFrequency () const + { + return m_frequency; + } + + /// Returns the lacunarity of the ridged-multifractal noise. + /// + /// @returns The lacunarity of the ridged-multifractal noise. + /// + /// The lacunarity is the frequency multiplier between successive + /// octaves. + double GetLacunarity () const + { + return m_lacunarity; + } + + /// Returns the quality of the ridged-multifractal noise. + /// + /// @returns The quality of the ridged-multifractal noise. + /// + /// See noise::NoiseQuality for definitions of the various + /// coherent-noise qualities. + noise::NoiseQuality GetNoiseQuality () const + { + return m_noiseQuality; + } + + /// Returns the number of octaves that generate the + /// ridged-multifractal noise. + /// + /// @returns The number of octaves that generate the + /// ridged-multifractal noise. + /// + /// The number of octaves controls the amount of detail in the + /// ridged-multifractal noise. + int GetOctaveCount () const + { + return m_octaveCount; + } + + /// Returns the seed value used by the ridged-multifractal-noise + /// function. + /// + /// @returns The seed value. + int GetSeed () const + { + return m_seed; + } + + virtual int GetSourceModuleCount () const + { + return 0; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the frequency of the first octave. + /// + /// @param frequency The frequency of the first octave. + void SetFrequency (double frequency) + { + m_frequency = frequency; + } + + /// Sets the lacunarity of the ridged-multifractal noise. + /// + /// @param lacunarity The lacunarity of the ridged-multifractal noise. + /// + /// The lacunarity is the frequency multiplier between successive + /// octaves. + /// + /// For best results, set the lacunarity to a number between 1.5 and + /// 3.5. + void SetLacunarity (double lacunarity) + { + m_lacunarity = lacunarity; + CalcSpectralWeights (); + } + + /// Sets the quality of the ridged-multifractal noise. + /// + /// @param noiseQuality The quality of the ridged-multifractal noise. + /// + /// See noise::NoiseQuality for definitions of the various + /// coherent-noise qualities. + void SetNoiseQuality (noise::NoiseQuality noiseQuality) + { + m_noiseQuality = noiseQuality; + } + + /// Sets the number of octaves that generate the ridged-multifractal + /// noise. + /// + /// @param octaveCount The number of octaves that generate the + /// ridged-multifractal noise. + /// + /// @pre The number of octaves ranges from 1 to + /// noise::module::RIDGED_MAX_OCTAVE. + /// + /// @throw noise::ExceptionInvalidParam An invalid parameter was + /// specified; see the preconditions for more information. + /// + /// The number of octaves controls the amount of detail in the + /// ridged-multifractal noise. + /// + /// The larger the number of octaves, the more time required to + /// calculate the ridged-multifractal-noise value. + void SetOctaveCount (int octaveCount) + { + if (octaveCount > RIDGED_MAX_OCTAVE) { + throw noise::ExceptionInvalidParam (); + } + m_octaveCount = octaveCount; + } + + /// Sets the seed value used by the ridged-multifractal-noise + /// function. + /// + /// @param seed The seed value. + void SetSeed (int seed) + { + m_seed = seed; + } + + protected: + + /// Calculates the spectral weights for each octave. + /// + /// This method is called when the lacunarity changes. + void CalcSpectralWeights (); + + /// Frequency of the first octave. + double m_frequency; + + /// Frequency multiplier between successive octaves. + double m_lacunarity; + + /// Quality of the ridged-multifractal noise. + noise::NoiseQuality m_noiseQuality; + + /// Total number of octaves that generate the ridged-multifractal + /// noise. + int m_octaveCount; + + /// Contains the spectral weights for each octave. + double m_pSpectralWeights[RIDGED_MAX_OCTAVE]; + + /// Seed value used by the ridged-multfractal-noise function. + int m_seed; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,68 @@+// rotatepoint.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "../mathconsts.h" +#include "rotatepoint.h" + +using namespace noise::module; + +RotatePoint::RotatePoint (): + Module (GetSourceModuleCount ()) +{ + SetAngles (DEFAULT_ROTATE_X, DEFAULT_ROTATE_Y, DEFAULT_ROTATE_Z); +} + +double RotatePoint::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + + double nx = (m_x1Matrix * x) + (m_y1Matrix * y) + (m_z1Matrix * z); + double ny = (m_x2Matrix * x) + (m_y2Matrix * y) + (m_z2Matrix * z); + double nz = (m_x3Matrix * x) + (m_y3Matrix * y) + (m_z3Matrix * z); + return m_pSourceModule[0]->GetValue (nx, ny, nz); +} + +void RotatePoint::SetAngles (double xAngle, double yAngle, + double zAngle) +{ + double xCos, yCos, zCos, xSin, ySin, zSin; + xCos = cos (xAngle * DEG_TO_RAD); + yCos = cos (yAngle * DEG_TO_RAD); + zCos = cos (zAngle * DEG_TO_RAD); + xSin = sin (xAngle * DEG_TO_RAD); + ySin = sin (yAngle * DEG_TO_RAD); + zSin = sin (zAngle * DEG_TO_RAD); + + m_x1Matrix = ySin * xSin * zSin + yCos * zCos; + m_y1Matrix = xCos * zSin; + m_z1Matrix = ySin * zCos - yCos * xSin * zSin; + m_x2Matrix = ySin * xSin * zCos - yCos * zSin; + m_y2Matrix = xCos * zCos; + m_z2Matrix = -yCos * xSin * zCos - ySin * zSin; + m_x3Matrix = -ySin * xCos; + m_y3Matrix = xSin; + m_z3Matrix = yCos * xCos; + + m_xAngle = xAngle; + m_yAngle = yAngle; + m_zAngle = zAngle; +}
@@ -0,0 +1,233 @@+// rotatepoint.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_ROTATEPOINT_H +#define NOISE_MODULE_ROTATEPOINT_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup transformermodules + /// @{ + + /// Default @a x rotation angle for the noise::module::RotatePoint noise + /// module. + const double DEFAULT_ROTATE_X = 0.0; + + /// Default @a y rotation angle for the noise::module::RotatePoint noise + /// module. + const double DEFAULT_ROTATE_Y = 0.0; + + /// Default @a z rotation angle for the noise::module::RotatePoint noise + /// module. + const double DEFAULT_ROTATE_Z = 0.0; + + /// Noise module that rotates the input value around the origin before + /// returning the output value from a source module. + /// + /// @image html modulerotatepoint.png + /// + /// The GetValue() method rotates the coordinates of the input value + /// around the origin before returning the output value from the source + /// module. To set the rotation angles, call the SetAngles() method. To + /// set the rotation angle around the individual @a x, @a y, or @a z axes, + /// call the SetXAngle(), SetYAngle() or SetZAngle() methods, + /// respectively. + /// + /// The coordinate system of the input value is assumed to be + /// "left-handed" (@a x increases to the right, @a y increases upward, + /// and @a z increases inward.) + /// + /// This noise module requires one source module. + class RotatePoint: public Module + { + + public: + + /// Constructor. + /// + /// The default rotation angle around the @a x axis, in degrees, is + /// set to noise::module::DEFAULT_ROTATE_X. + /// + /// The default rotation angle around the @a y axis, in degrees, is + /// set to noise::module::DEFAULT_ROTATE_Y. + /// + /// The default rotation angle around the @a z axis, in degrees, is + /// set to noise::module::DEFAULT_ROTATE_Z. + RotatePoint (); + + virtual int GetSourceModuleCount () const + { + return 1; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Returns the rotation angle around the @a x axis to apply to the + /// input value. + /// + /// @returns The rotation angle around the @a x axis, in degrees. + double GetXAngle () const + { + return m_xAngle; + } + + /// Returns the rotation angle around the @a y axis to apply to the + /// input value. + /// + /// @returns The rotation angle around the @a y axis, in degrees. + double GetYAngle () const + { + return m_yAngle; + } + + /// Returns the rotation angle around the @a z axis to apply to the + /// input value. + /// + /// @returns The rotation angle around the @a z axis, in degrees. + double GetZAngle () const + { + return m_zAngle; + } + + /// Sets the rotation angles around all three axes to apply to the + /// input value. + /// + /// @param xAngle The rotation angle around the @a x axis, in degrees. + /// @param yAngle The rotation angle around the @a y axis, in degrees. + /// @param zAngle The rotation angle around the @a z axis, in degrees. + /// + /// The GetValue() method rotates the coordinates of the input value + /// around the origin before returning the output value from the + /// source module. + void SetAngles (double xAngle, double yAngle, double zAngle); + + /// Sets the rotation angle around the @a x axis to apply to the input + /// value. + /// + /// @param xAngle The rotation angle around the @a x axis, in degrees. + /// + /// The GetValue() method rotates the coordinates of the input value + /// around the origin before returning the output value from the + /// source module. + void SetXAngle (double xAngle) + { + SetAngles (xAngle, m_yAngle, m_zAngle); + } + + /// Sets the rotation angle around the @a y axis to apply to the input + /// value. + /// + /// @param yAngle The rotation angle around the @a y axis, in degrees. + /// + /// The GetValue() method rotates the coordinates of the input value + /// around the origin before returning the output value from the + /// source module. + void SetYAngle (double yAngle) + { + SetAngles (m_xAngle, yAngle, m_zAngle); + } + + /// Sets the rotation angle around the @a z axis to apply to the input + /// value. + /// + /// @param zAngle The rotation angle around the @a z axis, in degrees. + /// + /// The GetValue() method rotates the coordinates of the input value + /// around the origin before returning the output value from the + /// source module. + void SetZAngle (double zAngle) + { + SetAngles (m_xAngle, m_yAngle, zAngle); + } + + protected: + + /// An entry within the 3x3 rotation matrix used for rotating the + /// input value. + double m_x1Matrix; + + /// An entry within the 3x3 rotation matrix used for rotating the + /// input value. + double m_x2Matrix; + + /// An entry within the 3x3 rotation matrix used for rotating the + /// input value. + double m_x3Matrix; + + /// @a x rotation angle applied to the input value, in degrees. + double m_xAngle; + + /// An entry within the 3x3 rotation matrix used for rotating the + /// input value. + double m_y1Matrix; + + /// An entry within the 3x3 rotation matrix used for rotating the + /// input value. + double m_y2Matrix; + + /// An entry within the 3x3 rotation matrix used for rotating the + /// input value. + double m_y3Matrix; + + /// @a y rotation angle applied to the input value, in degrees. + double m_yAngle; + + /// An entry within the 3x3 rotation matrix used for rotating the + /// input value. + double m_z1Matrix; + + /// An entry within the 3x3 rotation matrix used for rotating the + /// input value. + double m_z2Matrix; + + /// An entry within the 3x3 rotation matrix used for rotating the + /// input value. + double m_z3Matrix; + + /// @a z rotation angle applied to the input value, in degrees. + double m_zAngle; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,39 @@+// scalebias.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "scalebias.h" + +using namespace noise::module; + +ScaleBias::ScaleBias (): + Module (GetSourceModuleCount ()), + m_bias (DEFAULT_BIAS ), + m_scale (DEFAULT_SCALE) +{ +} + +double ScaleBias::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + + return m_pSourceModule[0]->GetValue (x, y, z) * m_scale + m_bias; +}
@@ -0,0 +1,151 @@+// scalebias.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_SCALEBIAS_H +#define NOISE_MODULE_SCALEBIAS_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup modifiermodules + /// @{ + + /// Default bias for the noise::module::ScaleBias noise module. + const double DEFAULT_BIAS = 0.0; + + /// Default scale for the noise::module::ScaleBias noise module. + const double DEFAULT_SCALE = 1.0; + + /// Noise module that applies a scaling factor and a bias to the output + /// value from a source module. + /// + /// @image html modulescalebias.png + /// + /// The GetValue() method retrieves the output value from the source + /// module, multiplies it with a scaling factor, adds a bias to it, then + /// outputs the value. + /// + /// This noise module requires one source module. + class ScaleBias: public Module + { + + public: + + /// Constructor. + /// + /// The default bias is set to noise::module::DEFAULT_BIAS. + /// + /// The default scaling factor is set to noise::module::DEFAULT_SCALE. + ScaleBias (); + + /// Returns the bias to apply to the scaled output value from the + /// source module. + /// + /// @returns The bias to apply. + /// + /// The GetValue() method retrieves the output value from the source + /// module, multiplies it with the scaling factor, adds the bias to + /// it, then outputs the value. + double GetBias () const + { + return m_bias; + } + + /// Returns the scaling factor to apply to the output value from the + /// source module. + /// + /// @returns The scaling factor to apply. + /// + /// The GetValue() method retrieves the output value from the source + /// module, multiplies it with the scaling factor, adds the bias to + /// it, then outputs the value. + double GetScale () const + { + return m_scale; + } + + virtual int GetSourceModuleCount () const + { + return 1; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the bias to apply to the scaled output value from the source + /// module. + /// + /// @param bias The bias to apply. + /// + /// The GetValue() method retrieves the output value from the source + /// module, multiplies it with the scaling factor, adds the bias to + /// it, then outputs the value. + void SetBias (double bias) + { + m_bias = bias; + } + + /// Sets the scaling factor to apply to the output value from the + /// source module. + /// + /// @param scale The scaling factor to apply. + /// + /// The GetValue() method retrieves the output value from the source + /// module, multiplies it with the scaling factor, adds the bias to + /// it, then outputs the value. + void SetScale (double scale) + { + m_scale = scale; + } + + protected: + + /// Bias to apply to the scaled output value from the source module. + double m_bias; + + /// Scaling factor to apply to the output value from the source + /// module. + double m_scale; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,41 @@+// scalepoint.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "scalepoint.h" + +using namespace noise::module; + +ScalePoint::ScalePoint (): + Module (GetSourceModuleCount ()), + m_xScale (DEFAULT_SCALE_POINT_X), + m_yScale (DEFAULT_SCALE_POINT_Y), + m_zScale (DEFAULT_SCALE_POINT_Z) +{ +} + +double ScalePoint::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + + return m_pSourceModule[0]->GetValue (x * m_xScale, y * m_yScale, + z * m_zScale); +}
@@ -0,0 +1,212 @@+// scalepoint.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_SCALEPOINT_H +#define NOISE_MODULE_SCALEPOINT_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup transformermodules + /// @{ + + /// Default scaling factor applied to the @a x coordinate for the + /// noise::module::ScalePoint noise module. + const double DEFAULT_SCALE_POINT_X = 1.0; + + /// Default scaling factor applied to the @a y coordinate for the + /// noise::module::ScalePoint noise module. + const double DEFAULT_SCALE_POINT_Y = 1.0; + + /// Default scaling factor applied to the @a z coordinate for the + /// noise::module::ScalePoint noise module. + const double DEFAULT_SCALE_POINT_Z = 1.0; + + /// Noise module that scales the coordinates of the input value before + /// returning the output value from a source module. + /// + /// @image html modulescalepoint.png + /// + /// The GetValue() method multiplies the ( @a x, @a y, @a z ) coordinates + /// of the input value with a scaling factor before returning the output + /// value from the source module. To set the scaling factor, call the + /// SetScale() method. To set the scaling factor to apply to the + /// individual @a x, @a y, or @a z coordinates, call the SetXScale(), + /// SetYScale() or SetZScale() methods, respectively. + /// + /// This noise module requires one source module. + class ScalePoint: public Module + { + + public: + + /// Constructor. + /// + /// The default scaling factor applied to the @a x coordinate is set + /// to noise::module::DEFAULT_SCALE_POINT_X. + /// + /// The default scaling factor applied to the @a y coordinate is set + /// to noise::module::DEFAULT_SCALE_POINT_Y. + /// + /// The default scaling factor applied to the @a z coordinate is set + /// to noise::module::DEFAULT_SCALE_POINT_Z. + ScalePoint (); + + virtual int GetSourceModuleCount () const + { + return 1; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Returns the scaling factor applied to the @a x coordinate of the + /// input value. + /// + /// @returns The scaling factor applied to the @a x coordinate. + double GetXScale () const + { + return m_xScale; + } + + /// Returns the scaling factor applied to the @a y coordinate of the + /// input value. + /// + /// @returns The scaling factor applied to the @a y coordinate. + double GetYScale () const + { + return m_yScale; + } + + /// Returns the scaling factor applied to the @a z coordinate of the + /// input value. + /// + /// @returns The scaling factor applied to the @a z coordinate. + double GetZScale () const + { + return m_zScale; + } + + /// Sets the scaling factor to apply to the input value. + /// + /// @param scale The scaling factor to apply. + /// + /// The GetValue() method multiplies the ( @a x, @a y, @a z ) + /// coordinates of the input value with a scaling factor before + /// returning the output value from the source module. + void SetScale (double scale) + { + m_xScale = scale; + m_yScale = scale; + m_zScale = scale; + } + + /// Sets the scaling factor to apply to the ( @a x, @a y, @a z ) + /// coordinates of the input value. + /// + /// @param xScale The scaling factor to apply to the @a x coordinate. + /// @param yScale The scaling factor to apply to the @a y coordinate. + /// @param zScale The scaling factor to apply to the @a z coordinate. + /// + /// The GetValue() method multiplies the ( @a x, @a y, @a z ) + /// coordinates of the input value with a scaling factor before + /// returning the output value from the source module. + void SetScale (double xScale, double yScale, double zScale) + { + m_xScale = xScale; + m_yScale = yScale; + m_zScale = zScale; + } + + /// Sets the scaling factor to apply to the @a x coordinate of the + /// input value. + /// + /// @param xScale The scaling factor to apply to the @a x coordinate. + /// + /// The GetValue() method multiplies the ( @a x, @a y, @a z ) + /// coordinates of the input value with a scaling factor before + /// returning the output value from the source module. + void SetXScale (double xScale) + { + m_xScale = xScale; + } + + /// Sets the scaling factor to apply to the @a y coordinate of the + /// input value. + /// + /// @param yScale The scaling factor to apply to the @a y coordinate. + /// + /// The GetValue() method multiplies the ( @a x, @a y, @a z ) + /// coordinates of the input value with a scaling factor before + /// returning the output value from the source module. + void SetYScale (double yScale) + { + m_yScale = yScale; + } + + /// Sets the scaling factor to apply to the @a z coordinate of the + /// input value. + /// + /// @param zScale The scaling factor to apply to the @a z coordinate. + /// + /// The GetValue() method multiplies the ( @a x, @a y, @a z ) + /// coordinates of the input value with a scaling factor before + /// returning the output value from the source module. + void SetZScale (double zScale) + { + m_zScale = zScale; + } + + protected: + + /// Scaling factor applied to the @a x coordinate of the input value. + double m_xScale; + + /// Scaling factor applied to the @a y coordinate of the input value. + double m_yScale; + + /// Scaling factor applied to the @a z coordinate of the input value. + double m_zScale; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,109 @@+// select.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "../interp.h" +#include "select.h" + +using namespace noise::module; + +Select::Select (): + Module (GetSourceModuleCount ()), + m_edgeFalloff (DEFAULT_SELECT_EDGE_FALLOFF), + m_lowerBound (DEFAULT_SELECT_LOWER_BOUND), + m_upperBound (DEFAULT_SELECT_UPPER_BOUND) +{ +} + +double Select::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + assert (m_pSourceModule[1] != NULL); + assert (m_pSourceModule[2] != NULL); + + double controlValue = m_pSourceModule[2]->GetValue (x, y, z); + double alpha; + if (m_edgeFalloff > 0.0) { + if (controlValue < (m_lowerBound - m_edgeFalloff)) { + // The output value from the control module is below the selector + // threshold; return the output value from the first source module. + return m_pSourceModule[0]->GetValue (x, y, z); + + } else if (controlValue < (m_lowerBound + m_edgeFalloff)) { + // The output value from the control module is near the lower end of the + // selector threshold and within the smooth curve. Interpolate between + // the output values from the first and second source modules. + double lowerCurve = (m_lowerBound - m_edgeFalloff); + double upperCurve = (m_lowerBound + m_edgeFalloff); + alpha = SCurve3 ( + (controlValue - lowerCurve) / (upperCurve - lowerCurve)); + return LinearInterp (m_pSourceModule[0]->GetValue (x, y, z), + m_pSourceModule[1]->GetValue (x, y, z), + alpha); + + } else if (controlValue < (m_upperBound - m_edgeFalloff)) { + // The output value from the control module is within the selector + // threshold; return the output value from the second source module. + return m_pSourceModule[1]->GetValue (x, y, z); + + } else if (controlValue < (m_upperBound + m_edgeFalloff)) { + // The output value from the control module is near the upper end of the + // selector threshold and within the smooth curve. Interpolate between + // the output values from the first and second source modules. + double lowerCurve = (m_upperBound - m_edgeFalloff); + double upperCurve = (m_upperBound + m_edgeFalloff); + alpha = SCurve3 ( + (controlValue - lowerCurve) / (upperCurve - lowerCurve)); + return LinearInterp (m_pSourceModule[1]->GetValue (x, y, z), + m_pSourceModule[0]->GetValue (x, y, z), + alpha); + + } else { + // Output value from the control module is above the selector threshold; + // return the output value from the first source module. + return m_pSourceModule[0]->GetValue (x, y, z); + } + } else { + if (controlValue < m_lowerBound || controlValue > m_upperBound) { + return m_pSourceModule[0]->GetValue (x, y, z); + } else { + return m_pSourceModule[1]->GetValue (x, y, z); + } + } +} + +void Select::SetBounds (double lowerBound, double upperBound) +{ + assert (lowerBound < upperBound); + + m_lowerBound = lowerBound; + m_upperBound = upperBound; + + // Make sure that the edge falloff curves do not overlap. + SetEdgeFalloff (m_edgeFalloff); +} + +void Select::SetEdgeFalloff (double edgeFalloff) +{ + // Make sure that the edge falloff curves do not overlap. + double boundSize = m_upperBound - m_lowerBound; + m_edgeFalloff = (edgeFalloff > boundSize / 2)? boundSize / 2: edgeFalloff; +}
@@ -0,0 +1,267 @@+// select.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_SELECT_H +#define NOISE_MODULE_SELECT_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup selectormodules + /// @{ + + /// Default edge-falloff value for the noise::module::Select noise module. + const double DEFAULT_SELECT_EDGE_FALLOFF = 0.0; + + /// Default lower bound of the selection range for the + /// noise::module::Select noise module. + const double DEFAULT_SELECT_LOWER_BOUND = -1.0; + + /// Default upper bound of the selection range for the + /// noise::module::Select noise module. + const double DEFAULT_SELECT_UPPER_BOUND = 1.0; + + /// Noise module that outputs the value selected from one of two source + /// modules chosen by the output value from a control module. + /// + /// @image html moduleselect.png + /// + /// Unlike most other noise modules, the index value assigned to a source + /// module determines its role in the selection operation: + /// - Source module 0 (upper left in the diagram) outputs a value. + /// - Source module 1 (lower left in the diagram) outputs a value. + /// - Source module 2 (bottom of the diagram) is known as the <i>control + /// module</i>. The control module determines the value to select. If + /// the output value from the control module is within a range of values + /// known as the <i>selection range</i>, this noise module outputs the + /// value from the source module with an index value of 1. Otherwise, + /// this noise module outputs the value from the source module with an + /// index value of 0. + /// + /// To specify the bounds of the selection range, call the SetBounds() + /// method. + /// + /// An application can pass the control module to the SetControlModule() + /// method instead of the SetSourceModule() method. This may make the + /// application code easier to read. + /// + /// By default, there is an abrupt transition between the output values + /// from the two source modules at the selection-range boundary. To + /// smooth the transition, pass a non-zero value to the SetEdgeFalloff() + /// method. Higher values result in a smoother transition. + /// + /// This noise module requires three source modules. + class Select: public Module + { + + public: + + /// Constructor. + /// + /// The default falloff value at the edge transition is set to + /// noise::module::DEFAULT_SELECT_EDGE_FALLOFF. + /// + /// The default lower bound of the selection range is set to + /// noise::module::DEFAULT_SELECT_LOWER_BOUND. + /// + /// The default upper bound of the selection range is set to + /// noise::module::DEFAULT_SELECT_UPPER_BOUND. + Select (); + + /// Returns the control module. + /// + /// @returns A reference to the control module. + /// + /// @pre A control module has been added to this noise module via a + /// call to SetSourceModule() or SetControlModule(). + /// + /// @throw noise::ExceptionNoModule See the preconditions for more + /// information. + /// + /// The control module determines the output value to select. If the + /// output value from the control module is within a range of values + /// known as the <i>selection range</i>, the GetValue() method outputs + /// the value from the source module with an index value of 1. + /// Otherwise, this method outputs the value from the source module + /// with an index value of 0. + const Module& GetControlModule () const + { + if (m_pSourceModule == NULL || m_pSourceModule[2] == NULL) { + throw noise::ExceptionNoModule (); + } + return *(m_pSourceModule[2]); + } + + /// Returns the falloff value at the edge transition. + /// + /// @returns The falloff value at the edge transition. + /// + /// The falloff value is the width of the edge transition at either + /// edge of the selection range. + /// + /// By default, there is an abrupt transition between the output + /// values from the two source modules at the selection-range + /// boundary. + double GetEdgeFalloff () const + { + return m_edgeFalloff; + } + + /// Returns the lower bound of the selection range. + /// + /// @returns The lower bound of the selection range. + /// + /// If the output value from the control module is within the + /// selection range, the GetValue() method outputs the value from the + /// source module with an index value of 1. Otherwise, this method + /// outputs the value from the source module with an index value of 0. + double GetLowerBound () const + { + return m_lowerBound; + } + + virtual int GetSourceModuleCount () const + { + return 3; + } + + /// Returns the upper bound of the selection range. + /// + /// @returns The upper bound of the selection range. + /// + /// If the output value from the control module is within the + /// selection range, the GetValue() method outputs the value from the + /// source module with an index value of 1. Otherwise, this method + /// outputs the value from the source module with an index value of 0. + double GetUpperBound () const + { + return m_upperBound; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the lower and upper bounds of the selection range. + /// + /// @param lowerBound The lower bound. + /// @param upperBound The upper bound. + /// + /// @pre The lower bound must be less than or equal to the upper + /// bound. + /// + /// @throw noise::ExceptionInvalidParam An invalid parameter was + /// specified; see the preconditions for more information. + /// + /// If the output value from the control module is within the + /// selection range, the GetValue() method outputs the value from the + /// source module with an index value of 1. Otherwise, this method + /// outputs the value from the source module with an index value of 0. + void SetBounds (double lowerBound, double upperBound); + + /// Sets the control module. + /// + /// @param controlModule The control module. + /// + /// The control module determines the output value to select. If the + /// output value from the control module is within a range of values + /// known as the <i>selection range</i>, the GetValue() method outputs + /// the value from the source module with an index value of 1. + /// Otherwise, this method outputs the value from the source module + /// with an index value of 0. + /// + /// This method assigns the control module an index value of 2. + /// Passing the control module to this method produces the same + /// results as passing the control module to the SetSourceModule() + /// method while assigning that noise module an index value of 2. + /// + /// This control module must exist throughout the lifetime of this + /// noise module unless another control module replaces that control + /// module. + void SetControlModule (const Module& controlModule) + { + assert (m_pSourceModule != NULL); + m_pSourceModule[2] = &controlModule; + } + + /// Sets the falloff value at the edge transition. + /// + /// @param edgeFalloff The falloff value at the edge transition. + /// + /// The falloff value is the width of the edge transition at either + /// edge of the selection range. + /// + /// By default, there is an abrupt transition between the values from + /// the two source modules at the boundaries of the selection range. + /// + /// For example, if the selection range is 0.5 to 0.8, and the edge + /// falloff value is 0.1, then the GetValue() method outputs: + /// - the output value from the source module with an index value of 0 + /// if the output value from the control module is less than 0.4 + /// ( = 0.5 - 0.1). + /// - a linear blend between the two output values from the two source + /// modules if the output value from the control module is between + /// 0.4 ( = 0.5 - 0.1) and 0.6 ( = 0.5 + 0.1). + /// - the output value from the source module with an index value of 1 + /// if the output value from the control module is between 0.6 + /// ( = 0.5 + 0.1) and 0.7 ( = 0.8 - 0.1). + /// - a linear blend between the output values from the two source + /// modules if the output value from the control module is between + /// 0.7 ( = 0.8 - 0.1 ) and 0.9 ( = 0.8 + 0.1). + /// - the output value from the source module with an index value of 0 + /// if the output value from the control module is greater than 0.9 + /// ( = 0.8 + 0.1). + void SetEdgeFalloff (double edgeFalloff); + + protected: + + /// Edge-falloff value. + double m_edgeFalloff; + + /// Lower bound of the selection range. + double m_lowerBound; + + /// Upper bound of the selection range. + double m_upperBound; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,45 @@+// spheres.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "../misc.h" +#include "spheres.h" + +using namespace noise::module; + +Spheres::Spheres (): + Module (GetSourceModuleCount ()), + m_frequency (DEFAULT_SPHERES_FREQUENCY) +{ +} + +double Spheres::GetValue (double x, double y, double z) const +{ + x *= m_frequency; + y *= m_frequency; + z *= m_frequency; + + double distFromCenter = sqrt (x * x + y * y + z * z); + double distFromSmallerSphere = distFromCenter - floor (distFromCenter); + double distFromLargerSphere = 1.0 - distFromSmallerSphere; + double nearestDist = GetMin (distFromSmallerSphere, distFromLargerSphere); + return 1.0 - (nearestDist * 4.0); // Puts it in the -1.0 to +1.0 range. +}
@@ -0,0 +1,127 @@+// spheres.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_SPHERES_H +#define NOISE_MODULE_SPHERES_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup generatormodules + /// @{ + + /// Default frequency value for the noise::module::Spheres noise module. + const double DEFAULT_SPHERES_FREQUENCY = 1.0; + + /// Noise module that outputs concentric spheres. + /// + /// @image html modulespheres.png + /// + /// This noise module outputs concentric spheres centered on the origin + /// like the concentric rings of an onion. + /// + /// The first sphere has a radius of 1.0. Each subsequent sphere has a + /// radius that is 1.0 unit larger than the previous sphere. + /// + /// The output value from this noise module is determined by the distance + /// between the input value and the the nearest spherical surface. The + /// input values that are located on a spherical surface are given the + /// output value 1.0 and the input values that are equidistant from two + /// spherical surfaces are given the output value -1.0. + /// + /// An application can change the frequency of the concentric spheres. + /// Increasing the frequency reduces the distances between spheres. To + /// specify the frequency, call the SetFrequency() method. + /// + /// This noise module, modified with some low-frequency, low-power + /// turbulence, is useful for generating agate-like textures. + /// + /// This noise module does not require any source modules. + class Spheres: public Module + { + + public: + + /// Constructor. + /// + /// The default frequency is set to + /// noise::module::DEFAULT_SPHERES_FREQUENCY. + Spheres (); + + /// Returns the frequency of the concentric spheres. + /// + /// @returns The frequency of the concentric spheres. + /// + /// Increasing the frequency increases the density of the concentric + /// spheres, reducing the distances between them. + double GetFrequency () const + { + return m_frequency; + } + + virtual int GetSourceModuleCount () const + { + return 0; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the frequenct of the concentric spheres. + /// + /// @param frequency The frequency of the concentric spheres. + /// + /// Increasing the frequency increases the density of the concentric + /// spheres, reducing the distances between them. + void SetFrequency (double frequency) + { + m_frequency = frequency; + } + + protected: + + /// Frequency of the concentric spheres. + double m_frequency; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,160 @@+// terrace.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "../interp.h" +#include "../misc.h" +#include "terrace.h" + +using namespace noise::module; + +using namespace noise; + +Terrace::Terrace (): + Module (GetSourceModuleCount ()), + m_controlPointCount (0), + m_invertTerraces (false), + m_pControlPoints (NULL) +{ +} + +Terrace::~Terrace () +{ + delete[] m_pControlPoints; +} + +void Terrace::AddControlPoint (double value) +{ + // Find the insertion point for the new control point and insert the new + // point at that position. The control point array will remain sorted by + // value. + int insertionPos = FindInsertionPos (value); + InsertAtPos (insertionPos, value); +} + +void Terrace::ClearAllControlPoints () +{ + delete[] m_pControlPoints; + m_pControlPoints = NULL; + m_controlPointCount = 0; +} + +int Terrace::FindInsertionPos (double value) +{ + int insertionPos; + for (insertionPos = 0; insertionPos < m_controlPointCount; insertionPos++) { + if (value < m_pControlPoints[insertionPos]) { + // We found the array index in which to insert the new control point. + // Exit now. + break; + } else if (value == m_pControlPoints[insertionPos]) { + // Each control point is required to contain a unique value, so throw + // an exception. + throw noise::ExceptionInvalidParam (); + } + } + return insertionPos; +} + +double Terrace::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + assert (m_controlPointCount >= 2); + + // Get the output value from the source module. + double sourceModuleValue = m_pSourceModule[0]->GetValue (x, y, z); + + // Find the first element in the control point array that has a value + // larger than the output value from the source module. + int indexPos; + for (indexPos = 0; indexPos < m_controlPointCount; indexPos++) { + if (sourceModuleValue < m_pControlPoints[indexPos]) { + break; + } + } + + // Find the two nearest control points so that we can map their values + // onto a quadratic curve. + int index0 = ClampValue (indexPos - 1, 0, m_controlPointCount - 1); + int index1 = ClampValue (indexPos , 0, m_controlPointCount - 1); + + // If some control points are missing (which occurs if the output value from + // the source module is greater than the largest value or less than the + // smallest value of the control point array), get the value of the nearest + // control point and exit now. + if (index0 == index1) { + return m_pControlPoints[index1]; + } + + // Compute the alpha value used for linear interpolation. + double value0 = m_pControlPoints[index0]; + double value1 = m_pControlPoints[index1]; + double alpha = (sourceModuleValue - value0) / (value1 - value0); + if (m_invertTerraces) { + alpha = 1.0 - alpha; + SwapValues (value0, value1); + } + + // Squaring the alpha produces the terrace effect. + alpha *= alpha; + + // Now perform the linear interpolation given the alpha value. + return LinearInterp (value0, value1, alpha); +} + +void Terrace::InsertAtPos (int insertionPos, double value) +{ + // Make room for the new control point at the specified position within + // the control point array. The position is determined by the value of + // the control point; the control points must be sorted by value within + // that array. + double* newControlPoints = new double[m_controlPointCount + 1]; + for (int i = 0; i < m_controlPointCount; i++) { + if (i < insertionPos) { + newControlPoints[i] = m_pControlPoints[i]; + } else { + newControlPoints[i + 1] = m_pControlPoints[i]; + } + } + delete[] m_pControlPoints; + m_pControlPoints = newControlPoints; + ++m_controlPointCount; + + // Now that we've made room for the new control point within the array, + // add the new control point. + m_pControlPoints[insertionPos] = value; +} + +void Terrace::MakeControlPoints (int controlPointCount) +{ + if (controlPointCount < 2) { + throw noise::ExceptionInvalidParam (); + } + + ClearAllControlPoints (); + + double terraceStep = 2.0 / ((double)controlPointCount - 1.0); + double curValue = -1.0; + for (int i = 0; i < (int)controlPointCount; i++) { + AddControlPoint (curValue); + curValue += terraceStep; + } +}
@@ -0,0 +1,242 @@+// terrace.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_TERRACE_H +#define NOISE_MODULE_TERRACE_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup modifiermodules + /// @{ + + /// Noise module that maps the output value from a source module onto a + /// terrace-forming curve. + /// + /// @image html moduleterrace.png + /// + /// This noise module maps the output value from the source module onto a + /// terrace-forming curve. The start of this curve has a slope of zero; + /// its slope then smoothly increases. This curve also contains + /// <i>control points</i> which resets the slope to zero at that point, + /// producing a "terracing" effect. Refer to the following illustration: + /// + /// @image html terrace.png + /// + /// To add a control point to this noise module, call the + /// AddControlPoint() method. + /// + /// An application must add a minimum of two control points to the curve. + /// If this is not done, the GetValue() method fails. The control points + /// can have any value, although no two control points can have the same + /// value. There is no limit to the number of control points that can be + /// added to the curve. + /// + /// This noise module clamps the output value from the source module if + /// that value is less than the value of the lowest control point or + /// greater than the value of the highest control point. + /// + /// This noise module is often used to generate terrain features such as + /// your stereotypical desert canyon. + /// + /// This noise module requires one source module. + class Terrace: public Module + { + + public: + + /// Constructor. + Terrace (); + + /// Destructor. + ~Terrace (); + + /// Adds a control point to the terrace-forming curve. + /// + /// @param value The value of the control point to add. + /// + /// @pre No two control points have the same value. + /// + /// @throw noise::ExceptionInvalidParam An invalid parameter was + /// specified; see the preconditions for more information. + /// + /// Two or more control points define the terrace-forming curve. The + /// start of this curve has a slope of zero; its slope then smoothly + /// increases. At the control points, its slope resets to zero. + /// + /// It does not matter which order these points are added. + void AddControlPoint (double value); + + /// Deletes all the control points on the terrace-forming curve. + /// + /// @post All control points on the terrace-forming curve are deleted. + void ClearAllControlPoints (); + + /// Returns a pointer to the array of control points on the + /// terrace-forming curve. + /// + /// @returns A pointer to the array of control points in this noise + /// module. + /// + /// Two or more control points define the terrace-forming curve. The + /// start of this curve has a slope of zero; its slope then smoothly + /// increases. At the control points, its slope resets to zero. + /// + /// Before calling this method, call GetControlPointCount() to + /// determine the number of control points in this array. + /// + /// It is recommended that an application does not store this pointer + /// for later use since the pointer to the array may change if the + /// application calls another method of this object. + const double* GetControlPointArray () const + { + return m_pControlPoints; + } + + /// Returns the number of control points on the terrace-forming curve. + /// + /// @returns The number of control points on the terrace-forming + /// curve. + int GetControlPointCount () const + { + return m_controlPointCount; + } + + virtual int GetSourceModuleCount () const + { + return 1; + } + + /// Enables or disables the inversion of the terrace-forming curve + /// between the control points. + /// + /// @param invert Specifies whether to invert the curve between the + /// control points. + void InvertTerraces (bool invert = true) + { + m_invertTerraces = invert; + } + + /// Determines if the terrace-forming curve between the control + /// points is inverted. + /// + /// @returns + /// - @a true if the curve between the control points is inverted. + /// - @a false if the curve between the control points is not + /// inverted. + bool IsTerracesInverted () const + { + return m_invertTerraces; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Creates a number of equally-spaced control points that range from + /// -1 to +1. + /// + /// @param controlPointCount The number of control points to generate. + /// + /// @pre The number of control points must be greater than or equal to + /// 2. + /// + /// @post The previous control points on the terrace-forming curve are + /// deleted. + /// + /// @throw noise::ExceptionInvalidParam An invalid parameter was + /// specified; see the preconditions for more information. + /// + /// Two or more control points define the terrace-forming curve. The + /// start of this curve has a slope of zero; its slope then smoothly + /// increases. At the control points, its slope resets to zero. + void MakeControlPoints (int controlPointCount); + + protected: + + /// Determines the array index in which to insert the control point + /// into the internal control point array. + /// + /// @param value The value of the control point. + /// + /// @returns The array index in which to insert the control point. + /// + /// @pre No two control points have the same value. + /// + /// @throw noise::ExceptionInvalidParam An invalid parameter was + /// specified; see the preconditions for more information. + /// + /// By inserting the control point at the returned array index, this + /// class ensures that the control point array is sorted by value. + /// The code that maps a value onto the curve requires a sorted + /// control point array. + int FindInsertionPos (double value); + + /// Inserts the control point at the specified position in the + /// internal control point array. + /// + /// @param insertionPos The zero-based array position in which to + /// insert the control point. + /// @param value The value of the control point. + /// + /// To make room for this new control point, this method reallocates + /// the control point array and shifts all control points occurring + /// after the insertion position up by one. + /// + /// Because the curve mapping algorithm in this noise module requires + /// that all control points in the array be sorted by value, the new + /// control point should be inserted at the position in which the + /// order is still preserved. + void InsertAtPos (int insertionPos, double value); + + /// Number of control points stored in this noise module. + int m_controlPointCount; + + /// Determines if the terrace-forming curve between all control points + /// is inverted. + bool m_invertTerraces; + + /// Array that stores the control points. + double* m_pControlPoints; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,41 @@+// translatepoint.cpp +// +// Copyright (C) 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "translatepoint.h" + +using namespace noise::module; + +TranslatePoint::TranslatePoint (): + Module (GetSourceModuleCount ()), + m_xTranslation (DEFAULT_TRANSLATE_POINT_X), + m_yTranslation (DEFAULT_TRANSLATE_POINT_Y), + m_zTranslation (DEFAULT_TRANSLATE_POINT_Z) +{ +} + +double TranslatePoint::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + + return m_pSourceModule[0]->GetValue (x + m_xTranslation, y + m_yTranslation, + z + m_zTranslation); +}
@@ -0,0 +1,223 @@+// translatepoint.h +// +// Copyright (C) 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_TRANSLATEPOINT_H +#define NOISE_MODULE_TRANSLATEPOINT_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup transformermodules + /// @{ + + /// Default translation factor applied to the @a x coordinate for the + /// noise::module::TranslatePoint noise module. + const double DEFAULT_TRANSLATE_POINT_X = 0.0; + + /// Default translation factor applied to the @a y coordinate for the + /// noise::module::TranslatePoint noise module. + const double DEFAULT_TRANSLATE_POINT_Y = 0.0; + + /// Default translation factor applied to the @a z coordinate for the + /// noise::module::TranslatePoint noise module. + const double DEFAULT_TRANSLATE_POINT_Z = 0.0; + + /// Noise module that moves the coordinates of the input value before + /// returning the output value from a source module. + /// + /// @image html moduletranslatepoint.png + /// + /// The GetValue() method moves the ( @a x, @a y, @a z ) coordinates of + /// the input value by a translation amount before returning the output + /// value from the source module. To set the translation amount, call + /// the SetTranslation() method. To set the translation amount to + /// apply to the individual @a x, @a y, or @a z coordinates, call the + /// SetXTranslation(), SetYTranslation() or SetZTranslation() methods, + /// respectively. + /// + /// This noise module requires one source module. + class TranslatePoint: public Module + { + + public: + + /// Constructor. + /// + /// The default translation amount to apply to the @a x coordinate is + /// set to noise::module::DEFAULT_TRANSLATE_POINT_X. + /// + /// The default translation amount to apply to the @a y coordinate is + /// set to noise::module::DEFAULT_TRANSLATE_POINT_Y. + /// + /// The default translation amount to apply to the @a z coordinate is + /// set to noise::module::DEFAULT_TRANSLATE_POINT_Z. + TranslatePoint (); + + virtual int GetSourceModuleCount () const + { + return 1; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Returns the translation amount to apply to the @a x coordinate of + /// the input value. + /// + /// @returns The translation amount to apply to the @a x coordinate. + double GetXTranslation () const + { + return m_xTranslation; + } + + /// Returns the translation amount to apply to the @a y coordinate of + /// the input value. + /// + /// @returns The translation amount to apply to the @a y coordinate. + double GetYTranslation () const + { + return m_yTranslation; + } + + /// Returns the translation amount to apply to the @a z coordinate of + /// the input value. + /// + /// @returns The translation amount to apply to the @a z coordinate. + double GetZTranslation () const + { + return m_zTranslation; + } + + /// Sets the translation amount to apply to the input value. + /// + /// @param translation The translation amount to apply. + /// + /// The GetValue() method moves the ( @a x, @a y, @a z ) coordinates + /// of the input value by a translation amount before returning the + /// output value from the source module + void SetTranslation (double translation) + { + m_xTranslation = translation; + m_yTranslation = translation; + m_zTranslation = translation; + } + + /// Sets the translation amounts to apply to the ( @a x, @a y, @a z ) + /// coordinates of the input value. + /// + /// @param xTranslation The translation amount to apply to the @a x + /// coordinate. + /// @param yTranslation The translation amount to apply to the @a y + /// coordinate. + /// @param zTranslation The translation amount to apply to the @a z + /// coordinate. + /// + /// The GetValue() method moves the ( @a x, @a y, @a z ) coordinates + /// of the input value by a translation amount before returning the + /// output value from the source module + void SetTranslation (double xTranslation, double yTranslation, + double zTranslation) + { + m_xTranslation = xTranslation; + m_yTranslation = yTranslation; + m_zTranslation = zTranslation; + } + + /// Sets the translation amount to apply to the @a x coordinate of the + /// input value. + /// + /// @param xTranslation The translation amount to apply to the @a x + /// coordinate. + /// + /// The GetValue() method moves the ( @a x, @a y, @a z ) coordinates + /// of the input value by a translation amount before returning the + /// output value from the source module + void SetXTranslation (double xTranslation) + { + m_xTranslation = xTranslation; + } + + /// Sets the translation amount to apply to the @a y coordinate of the + /// input value. + /// + /// @param yTranslation The translation amount to apply to the @a y + /// coordinate. + /// + /// The GetValue() method moves the ( @a x, @a y, @a z ) coordinates + /// of the input value by a translation amount before returning the + /// output value from the source module + void SetYTranslation (double yTranslation) + { + m_yTranslation = yTranslation; + } + + /// Sets the translation amount to apply to the @a z coordinate of the + /// input value. + /// + /// @param zTranslation The translation amount to apply to the @a z + /// coordinate. + /// + /// The GetValue() method moves the ( @a x, @a y, @a z ) coordinates + /// of the input value by a translation amount before returning the + /// output value from the source module + void SetZTranslation (double zTranslation) + { + m_zTranslation = zTranslation; + } + + protected: + + /// Translation amount applied to the @a x coordinate of the input + /// value. + double m_xTranslation; + + /// Translation amount applied to the @a y coordinate of the input + /// value. + double m_yTranslation; + + /// Translation amount applied to the @a z coordinate of the input + /// value. + double m_zTranslation; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,91 @@+// turbulence.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "turbulence.h" + +using namespace noise::module; + +Turbulence::Turbulence (): + Module (GetSourceModuleCount ()), + m_power (DEFAULT_TURBULENCE_POWER) +{ + SetSeed (DEFAULT_TURBULENCE_SEED); + SetFrequency (DEFAULT_TURBULENCE_FREQUENCY); + SetRoughness (DEFAULT_TURBULENCE_ROUGHNESS); +} + +double Turbulence::GetFrequency () const +{ + // Since each noise::module::Perlin noise module has the same frequency, it + // does not matter which module we use to retrieve the frequency. + return m_xDistortModule.GetFrequency (); +} + +int Turbulence::GetSeed () const +{ + return m_xDistortModule.GetSeed (); +} + +double Turbulence::GetValue (double x, double y, double z) const +{ + assert (m_pSourceModule[0] != NULL); + + // Get the values from the three noise::module::Perlin noise modules and + // add each value to each coordinate of the input value. There are also + // some offsets added to the coordinates of the input values. This prevents + // the distortion modules from returning zero if the (x, y, z) coordinates, + // when multiplied by the frequency, are near an integer boundary. This is + // due to a property of gradient coherent noise, which returns zero at + // integer boundaries. + double x0, y0, z0; + double x1, y1, z1; + double x2, y2, z2; + x0 = x + (12414.0 / 65536.0); + y0 = y + (65124.0 / 65536.0); + z0 = z + (31337.0 / 65536.0); + x1 = x + (26519.0 / 65536.0); + y1 = y + (18128.0 / 65536.0); + z1 = z + (60493.0 / 65536.0); + x2 = x + (53820.0 / 65536.0); + y2 = y + (11213.0 / 65536.0); + z2 = z + (44845.0 / 65536.0); + double xDistort = x + (m_xDistortModule.GetValue (x0, y0, z0) + * m_power); + double yDistort = y + (m_yDistortModule.GetValue (x1, y1, z1) + * m_power); + double zDistort = z + (m_zDistortModule.GetValue (x2, y2, z2) + * m_power); + + // Retrieve the output value at the offsetted input value instead of the + // original input value. + return m_pSourceModule[0]->GetValue (xDistort, yDistort, zDistort); +} + +void Turbulence::SetSeed (int seed) +{ + // Set the seed of each noise::module::Perlin noise modules. To prevent any + // sort of weird artifacting, use a slightly different seed for each noise + // module. + m_xDistortModule.SetSeed (seed ); + m_yDistortModule.SetSeed (seed + 1); + m_zDistortModule.SetSeed (seed + 2); +}
@@ -0,0 +1,269 @@+// turbulence.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_TURBULENCE_H +#define NOISE_MODULE_TURBULENCE_H + +#include "perlin.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup transformermodules + /// @{ + + /// Default frequency for the noise::module::Turbulence noise module. + const double DEFAULT_TURBULENCE_FREQUENCY = DEFAULT_PERLIN_FREQUENCY; + + /// Default power for the noise::module::Turbulence noise module. + const double DEFAULT_TURBULENCE_POWER = 1.0; + + /// Default roughness for the noise::module::Turbulence noise module. + const int DEFAULT_TURBULENCE_ROUGHNESS = 3; + + /// Default noise seed for the noise::module::Turbulence noise module. + const int DEFAULT_TURBULENCE_SEED = DEFAULT_PERLIN_SEED; + + /// Noise module that randomly displaces the input value before + /// returning the output value from a source module. + /// + /// @image html moduleturbulence.png + /// + /// @a Turbulence is the pseudo-random displacement of the input value. + /// The GetValue() method randomly displaces the ( @a x, @a y, @a z ) + /// coordinates of the input value before retrieving the output value from + /// the source module. To control the turbulence, an application can + /// modify its frequency, its power, and its roughness. + /// + /// The frequency of the turbulence determines how rapidly the + /// displacement amount changes. To specify the frequency, call the + /// SetFrequency() method. + /// + /// The power of the turbulence determines the scaling factor that is + /// applied to the displacement amount. To specify the power, call the + /// SetPower() method. + /// + /// The roughness of the turbulence determines the roughness of the + /// changes to the displacement amount. Low values smoothly change the + /// displacement amount. High values roughly change the displacement + /// amount, which produces more "kinky" changes. To specify the + /// roughness, call the SetRoughness() method. + /// + /// Use of this noise module may require some trial and error. Assuming + /// that you are using a generator module as the source module, you + /// should first: + /// - Set the frequency to the same frequency as the source module. + /// - Set the power to the reciprocal of the frequency. + /// + /// From these initial frequency and power values, modify these values + /// until this noise module produce the desired changes in your terrain or + /// texture. For example: + /// - Low frequency (1/8 initial frequency) and low power (1/8 initial + /// power) produces very minor, almost unnoticeable changes. + /// - Low frequency (1/8 initial frequency) and high power (8 times + /// initial power) produces "ropey" lava-like terrain or marble-like + /// textures. + /// - High frequency (8 times initial frequency) and low power (1/8 + /// initial power) produces a noisy version of the initial terrain or + /// texture. + /// - High frequency (8 times initial frequency) and high power (8 times + /// initial power) produces nearly pure noise, which isn't entirely + /// useful. + /// + /// Displacing the input values result in more realistic terrain and + /// textures. If you are generating elevations for terrain height maps, + /// you can use this noise module to produce more realistic mountain + /// ranges or terrain features that look like flowing lava rock. If you + /// are generating values for textures, you can use this noise module to + /// produce realistic marble-like or "oily" textures. + /// + /// Internally, there are three noise::module::Perlin noise modules + /// that displace the input value; one for the @a x, one for the @a y, + /// and one for the @a z coordinate. + /// + /// This noise module requires one source module. + class Turbulence: public Module + { + + public: + + /// Constructor. + /// + /// The default frequency is set to + /// noise::module::DEFAULT_TURBULENCE_FREQUENCY. + /// + /// The default power is set to + /// noise::module::DEFAULT_TURBULENCE_POWER. + /// + /// The default roughness is set to + /// noise::module::DEFAULT_TURBULENCE_ROUGHNESS. + /// + /// The default seed value is set to + /// noise::module::DEFAULT_TURBULENCE_SEED. + Turbulence (); + + /// Returns the frequency of the turbulence. + /// + /// @returns The frequency of the turbulence. + /// + /// The frequency of the turbulence determines how rapidly the + /// displacement amount changes. + double GetFrequency () const; + + /// Returns the power of the turbulence. + /// + /// @returns The power of the turbulence. + /// + /// The power of the turbulence determines the scaling factor that is + /// applied to the displacement amount. + double GetPower () const + { + return m_power; + } + + /// Returns the roughness of the turbulence. + /// + /// @returns The roughness of the turbulence. + /// + /// The roughness of the turbulence determines the roughness of the + /// changes to the displacement amount. Low values smoothly change + /// the displacement amount. High values roughly change the + /// displacement amount, which produces more "kinky" changes. + int GetRoughnessCount () const + { + return m_xDistortModule.GetOctaveCount (); + } + + /// Returns the seed value of the internal Perlin-noise modules that + /// are used to displace the input values. + /// + /// @returns The seed value. + /// + /// Internally, there are three noise::module::Perlin noise modules + /// that displace the input value; one for the @a x, one for the @a y, + /// and one for the @a z coordinate. + int GetSeed () const; + + virtual int GetSourceModuleCount () const + { + return 1; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the frequency of the turbulence. + /// + /// @param frequency The frequency of the turbulence. + /// + /// The frequency of the turbulence determines how rapidly the + /// displacement amount changes. + void SetFrequency (double frequency) + { + // Set the frequency of each Perlin-noise module. + m_xDistortModule.SetFrequency (frequency); + m_yDistortModule.SetFrequency (frequency); + m_zDistortModule.SetFrequency (frequency); + } + + /// Sets the power of the turbulence. + /// + /// @param power The power of the turbulence. + /// + /// The power of the turbulence determines the scaling factor that is + /// applied to the displacement amount. + void SetPower (double power) + { + m_power = power; + } + + /// Sets the roughness of the turbulence. + /// + /// @param roughness The roughness of the turbulence. + /// + /// The roughness of the turbulence determines the roughness of the + /// changes to the displacement amount. Low values smoothly change + /// the displacement amount. High values roughly change the + /// displacement amount, which produces more "kinky" changes. + /// + /// Internally, there are three noise::module::Perlin noise modules + /// that displace the input value; one for the @a x, one for the @a y, + /// and one for the @a z coordinate. The roughness value is equal to + /// the number of octaves used by the noise::module::Perlin noise + /// modules. + void SetRoughness (int roughness) + { + // Set the octave count for each Perlin-noise module. + m_xDistortModule.SetOctaveCount (roughness); + m_yDistortModule.SetOctaveCount (roughness); + m_zDistortModule.SetOctaveCount (roughness); + } + + /// Sets the seed value of the internal noise modules that are used to + /// displace the input values. + /// + /// @param seed The seed value. + /// + /// Internally, there are three noise::module::Perlin noise modules + /// that displace the input value; one for the @a x, one for the @a y, + /// and one for the @a z coordinate. This noise module assigns the + /// following seed values to the noise::module::Perlin noise modules: + /// - It assigns the seed value (@a seed + 0) to the @a x noise module. + /// - It assigns the seed value (@a seed + 1) to the @a y noise module. + /// - It assigns the seed value (@a seed + 2) to the @a z noise module. + void SetSeed (int seed); + + protected: + + /// The power (scale) of the displacement. + double m_power; + + /// Noise module that displaces the @a x coordinate. + Perlin m_xDistortModule; + + /// Noise module that displaces the @a y coordinate. + Perlin m_yDistortModule; + + /// Noise module that displaces the @a z coordinate. + Perlin m_zDistortModule; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,101 @@+// voronoi.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "../mathconsts.h" +#include "voronoi.h" + +using namespace noise::module; + +Voronoi::Voronoi (): + Module (GetSourceModuleCount ()), + m_displacement (DEFAULT_VORONOI_DISPLACEMENT), + m_enableDistance (false ), + m_frequency (DEFAULT_VORONOI_FREQUENCY ), + m_seed (DEFAULT_VORONOI_SEED ) +{ +} + +double Voronoi::GetValue (double x, double y, double z) const +{ + // This method could be more efficient by caching the seed values. Fix + // later. + + x *= m_frequency; + y *= m_frequency; + z *= m_frequency; + + int xInt = (x > 0.0? (int)x: (int)x - 1); + int yInt = (y > 0.0? (int)y: (int)y - 1); + int zInt = (z > 0.0? (int)z: (int)z - 1); + + double minDist = 2147483647.0; + double xCandidate = 0; + double yCandidate = 0; + double zCandidate = 0; + + // Inside each unit cube, there is a seed point at a random position. Go + // through each of the nearby cubes until we find a cube with a seed point + // that is closest to the specified position. + for (int zCur = zInt - 2; zCur <= zInt + 2; zCur++) { + for (int yCur = yInt - 2; yCur <= yInt + 2; yCur++) { + for (int xCur = xInt - 2; xCur <= xInt + 2; xCur++) { + + // Calculate the position and distance to the seed point inside of + // this unit cube. + double xPos = xCur + ValueNoise3D (xCur, yCur, zCur, m_seed ); + double yPos = yCur + ValueNoise3D (xCur, yCur, zCur, m_seed + 1); + double zPos = zCur + ValueNoise3D (xCur, yCur, zCur, m_seed + 2); + double xDist = xPos - x; + double yDist = yPos - y; + double zDist = zPos - z; + double dist = xDist * xDist + yDist * yDist + zDist * zDist; + + if (dist < minDist) { + // This seed point is closer to any others found so far, so record + // this seed point. + minDist = dist; + xCandidate = xPos; + yCandidate = yPos; + zCandidate = zPos; + } + } + } + } + + double value; + if (m_enableDistance) { + // Determine the distance to the nearest seed point. + double xDist = xCandidate - x; + double yDist = yCandidate - y; + double zDist = zCandidate - z; + value = (sqrt (xDist * xDist + yDist * yDist + zDist * zDist) + ) * SQRT_3 - 1.0; + } else { + value = 0.0; + } + + // Return the calculated distance with the displacement value applied. + return value + (m_displacement * (double)ValueNoise3D ( + (int)(floor (xCandidate)), + (int)(floor (yCandidate)), + (int)(floor (zCandidate)))); +}
@@ -0,0 +1,246 @@+// voronoi.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_MODULE_VORONOI_H +#define NOISE_MODULE_VORONOI_H + +#include "modulebase.h" + +namespace noise +{ + + namespace module + { + + /// @addtogroup libnoise + /// @{ + + /// @addtogroup modules + /// @{ + + /// @addtogroup generatormodules + /// @{ + + /// Default displacement to apply to each cell for the + /// noise::module::Voronoi noise module. + const double DEFAULT_VORONOI_DISPLACEMENT = 1.0; + + /// Default frequency of the seed points for the noise::module::Voronoi + /// noise module. + const double DEFAULT_VORONOI_FREQUENCY = 1.0; + + /// Default seed of the noise function for the noise::module::Voronoi + /// noise module. + const int DEFAULT_VORONOI_SEED = 0; + + /// Noise module that outputs Voronoi cells. + /// + /// @image html modulevoronoi.png + /// + /// In mathematics, a <i>Voronoi cell</i> is a region containing all the + /// points that are closer to a specific <i>seed point</i> than to any + /// other seed point. These cells mesh with one another, producing + /// polygon-like formations. + /// + /// By default, this noise module randomly places a seed point within + /// each unit cube. By modifying the <i>frequency</i> of the seed points, + /// an application can change the distance between seed points. The + /// higher the frequency, the closer together this noise module places + /// the seed points, which reduces the size of the cells. To specify the + /// frequency of the cells, call the SetFrequency() method. + /// + /// This noise module assigns each Voronoi cell with a random constant + /// value from a coherent-noise function. The <i>displacement value</i> + /// controls the range of random values to assign to each cell. The + /// range of random values is +/- the displacement value. Call the + /// SetDisplacement() method to specify the displacement value. + /// + /// To modify the random positions of the seed points, call the SetSeed() + /// method. + /// + /// This noise module can optionally add the distance from the nearest + /// seed to the output value. To enable this feature, call the + /// EnableDistance() method. This causes the points in the Voronoi cells + /// to increase in value the further away that point is from the nearest + /// seed point. + /// + /// Voronoi cells are often used to generate cracked-mud terrain + /// formations or crystal-like textures + /// + /// This noise module requires no source modules. + class Voronoi: public Module + { + + public: + + /// Constructor. + /// + /// The default displacement value is set to + /// noise::module::DEFAULT_VORONOI_DISPLACEMENT. + /// + /// The default frequency is set to + /// noise::module::DEFAULT_VORONOI_FREQUENCY. + /// + /// The default seed value is set to + /// noise::module::DEFAULT_VORONOI_SEED. + Voronoi (); + + /// Enables or disables applying the distance from the nearest seed + /// point to the output value. + /// + /// @param enable Specifies whether to apply the distance to the + /// output value or not. + /// + /// Applying the distance from the nearest seed point to the output + /// value causes the points in the Voronoi cells to increase in value + /// the further away that point is from the nearest seed point. + /// Setting this value to @a true (and setting the displacement to a + /// near-zero value) causes this noise module to generate cracked mud + /// formations. + void EnableDistance (bool enable = true) + { + m_enableDistance = enable; + } + + /// Returns the displacement value of the Voronoi cells. + /// + /// @returns The displacement value of the Voronoi cells. + /// + /// This noise module assigns each Voronoi cell with a random constant + /// value from a coherent-noise function. The <i>displacement + /// value</i> controls the range of random values to assign to each + /// cell. The range of random values is +/- the displacement value. + double GetDisplacement () const + { + return m_displacement; + } + + /// Returns the frequency of the seed points. + /// + /// @returns The frequency of the seed points. + /// + /// The frequency determines the size of the Voronoi cells and the + /// distance between these cells. + double GetFrequency () const + { + return m_frequency; + } + + virtual int GetSourceModuleCount () const + { + return 0; + } + + /// Returns the seed value used by the Voronoi cells + /// + /// @returns The seed value. + /// + /// The positions of the seed values are calculated by a + /// coherent-noise function. By modifying the seed value, the output + /// of that function changes. + int GetSeed () const + { + return m_seed; + } + + /// Determines if the distance from the nearest seed point is applied + /// to the output value. + /// + /// @returns + /// - @a true if the distance is applied to the output value. + /// - @a false if not. + /// + /// Applying the distance from the nearest seed point to the output + /// value causes the points in the Voronoi cells to increase in value + /// the further away that point is from the nearest seed point. + bool IsDistanceEnabled () const + { + return m_enableDistance; + } + + virtual double GetValue (double x, double y, double z) const; + + /// Sets the displacement value of the Voronoi cells. + /// + /// @param displacement The displacement value of the Voronoi cells. + /// + /// This noise module assigns each Voronoi cell with a random constant + /// value from a coherent-noise function. The <i>displacement + /// value</i> controls the range of random values to assign to each + /// cell. The range of random values is +/- the displacement value. + void SetDisplacement (double displacement) + { + m_displacement = displacement; + } + + /// Sets the frequency of the seed points. + /// + /// @param frequency The frequency of the seed points. + /// + /// The frequency determines the size of the Voronoi cells and the + /// distance between these cells. + void SetFrequency (double frequency) + { + m_frequency = frequency; + } + + /// Sets the seed value used by the Voronoi cells + /// + /// @param seed The seed value. + /// + /// The positions of the seed values are calculated by a + /// coherent-noise function. By modifying the seed value, the output + /// of that function changes. + void SetSeed (int seed) + { + m_seed = seed; + } + + protected: + + /// Scale of the random displacement to apply to each Voronoi cell. + double m_displacement; + + /// Determines if the distance from the nearest seed point is applied to + /// the output value. + bool m_enableDistance; + + /// Frequency of the seed points. + double m_frequency; + + /// Seed value used by the coherent-noise function to determine the + /// positions of the seed points. + int m_seed; + + }; + + /// @} + + /// @} + + /// @} + + } + +} + +#endif
@@ -0,0 +1,74 @@+// noise.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_H +#define NOISE_H + +/// @mainpage libnoise +/// +/// @section intro Introduction +/// +/// libnoise is a portable C++ library that is used to generate <i>coherent +/// noise</i>, a type of smoothly-changing noise. libnoise can generate Perlin +/// noise, ridged multifractal noise, and other types of coherent noise. +/// +/// Coherent noise is often used by graphics programmers to generate +/// natural-looking textures, planetary terrain, and other things. It can +/// also be used to move critters in a realistic way. +/// +/// libnoise is known to compile using the following compilers on the +/// following platforms: +/// - Microsoft Visual C++ 5.0 under Microsoft Windows 2000 Service Pack 4 +/// - gcc 3.3.4 under Gentoo Linux 10.0 (x86) +/// +/// It is not known if libnoise will compile on 64-bit platforms, although +/// there is a good change that it will. +/// +/// @section noise Noise Modules +/// +/// In libnoise, coherent-noise generators are encapsulated in classes called +/// <i>noise modules</i>. There are many different types of noise modules. +/// Some noise modules can combine or modify the outputs of other noise +/// modules in various ways; you can join these modules together to generate +/// very complex coherent noise. +/// +/// A noise module receives a 3-dimensional input value from the application, +/// computes the noise value given that input value, and returns the resulting +/// value back to the application. +/// +/// If the application passes the same input value to a noise module, the +/// noise module returns the same output value. +/// +/// All noise modules are derived from the noise::module::Module abstract +/// base class. +/// +/// @section contact Contact +/// +/// Contact jas for questions about libnoise. The spam-resistant email +/// address is jlbezigvins@gmzigail.com (For great email, take off every +/// <a href=http://www.planettribes.com/allyourbase/story.shtml>zig</a>.) + +#include "module/module.h" +#include "model/model.h" +#include "misc.h" + +#endif
@@ -0,0 +1,220 @@+// noisegen.cpp +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include "noisegen.h" +#include "interp.h" +#include "vectortable.h" + +using namespace noise; + +// Specifies the version of the coherent-noise functions to use. +// - Set to 2 to use the current version. +// - Set to 1 to use the flawed version from the original version of libnoise. +// If your application requires coherent-noise values that were generated by +// an earlier version of libnoise, change this constant to the appropriate +// value and recompile libnoise. +#define NOISE_VERSION 2 + +// These constants control certain parameters that all coherent-noise +// functions require. +#if (NOISE_VERSION == 1) +// Constants used by the original version of libnoise. +// Because X_NOISE_GEN is not relatively prime to the other values, and +// Z_NOISE_GEN is close to 256 (the number of random gradient vectors), +// patterns show up in high-frequency coherent noise. +const int X_NOISE_GEN = 1; +const int Y_NOISE_GEN = 31337; +const int Z_NOISE_GEN = 263; +const int SEED_NOISE_GEN = 1013; +const int SHIFT_NOISE_GEN = 13; +#else +// Constants used by the current version of libnoise. +const int X_NOISE_GEN = 1619; +const int Y_NOISE_GEN = 31337; +const int Z_NOISE_GEN = 6971; +const int SEED_NOISE_GEN = 1013; +const int SHIFT_NOISE_GEN = 8; +#endif + +double noise::GradientCoherentNoise3D (double x, double y, double z, int seed, + NoiseQuality noiseQuality) +{ + // Create a unit-length cube aligned along an integer boundary. This cube + // surrounds the input point. + int x0 = (x > 0.0? (int)x: (int)x - 1); + int x1 = x0 + 1; + int y0 = (y > 0.0? (int)y: (int)y - 1); + int y1 = y0 + 1; + int z0 = (z > 0.0? (int)z: (int)z - 1); + int z1 = z0 + 1; + + // Map the difference between the coordinates of the input value and the + // coordinates of the cube's outer-lower-left vertex onto an S-curve. + double xs = 0, ys = 0, zs = 0; + switch (noiseQuality) { + case QUALITY_FAST: + xs = (x - (double)x0); + ys = (y - (double)y0); + zs = (z - (double)z0); + break; + case QUALITY_STD: + xs = SCurve3 (x - (double)x0); + ys = SCurve3 (y - (double)y0); + zs = SCurve3 (z - (double)z0); + break; + case QUALITY_BEST: + xs = SCurve5 (x - (double)x0); + ys = SCurve5 (y - (double)y0); + zs = SCurve5 (z - (double)z0); + break; + } + + // Now calculate the noise values at each vertex of the cube. To generate + // the coherent-noise value at the input point, interpolate these eight + // noise values using the S-curve value as the interpolant (trilinear + // interpolation.) + double n0, n1, ix0, ix1, iy0, iy1; + n0 = GradientNoise3D (x, y, z, x0, y0, z0, seed); + n1 = GradientNoise3D (x, y, z, x1, y0, z0, seed); + ix0 = LinearInterp (n0, n1, xs); + n0 = GradientNoise3D (x, y, z, x0, y1, z0, seed); + n1 = GradientNoise3D (x, y, z, x1, y1, z0, seed); + ix1 = LinearInterp (n0, n1, xs); + iy0 = LinearInterp (ix0, ix1, ys); + n0 = GradientNoise3D (x, y, z, x0, y0, z1, seed); + n1 = GradientNoise3D (x, y, z, x1, y0, z1, seed); + ix0 = LinearInterp (n0, n1, xs); + n0 = GradientNoise3D (x, y, z, x0, y1, z1, seed); + n1 = GradientNoise3D (x, y, z, x1, y1, z1, seed); + ix1 = LinearInterp (n0, n1, xs); + iy1 = LinearInterp (ix0, ix1, ys); + + return LinearInterp (iy0, iy1, zs); +} + +double noise::GradientNoise3D (double fx, double fy, double fz, int ix, + int iy, int iz, int seed) +{ + // Randomly generate a gradient vector given the integer coordinates of the + // input value. This implementation generates a random number and uses it + // as an index into a normalized-vector lookup table. + int vectorIndex = ( + X_NOISE_GEN * ix + + Y_NOISE_GEN * iy + + Z_NOISE_GEN * iz + + SEED_NOISE_GEN * seed) + & 0xffffffff; + vectorIndex ^= (vectorIndex >> SHIFT_NOISE_GEN); + vectorIndex &= 0xff; + + double xvGradient = g_randomVectors[(vectorIndex << 2) ]; + double yvGradient = g_randomVectors[(vectorIndex << 2) + 1]; + double zvGradient = g_randomVectors[(vectorIndex << 2) + 2]; + + // Set up us another vector equal to the distance between the two vectors + // passed to this function. + double xvPoint = (fx - (double)ix); + double yvPoint = (fy - (double)iy); + double zvPoint = (fz - (double)iz); + + // Now compute the dot product of the gradient vector with the distance + // vector. The resulting value is gradient noise. Apply a scaling value + // so that this noise value ranges from -1.0 to 1.0. + return ((xvGradient * xvPoint) + + (yvGradient * yvPoint) + + (zvGradient * zvPoint)) * 2.12; +} + +int noise::IntValueNoise3D (int x, int y, int z, int seed) +{ + // All constants are primes and must remain prime in order for this noise + // function to work correctly. + int n = ( + X_NOISE_GEN * x + + Y_NOISE_GEN * y + + Z_NOISE_GEN * z + + SEED_NOISE_GEN * seed) + & 0x7fffffff; + n = (n >> 13) ^ n; + return (n * (n * n * 60493 + 19990303) + 1376312589) & 0x7fffffff; +} + +double noise::ValueCoherentNoise3D (double x, double y, double z, int seed, + NoiseQuality noiseQuality) +{ + // Create a unit-length cube aligned along an integer boundary. This cube + // surrounds the input point. + int x0 = (x > 0.0? (int)x: (int)x - 1); + int x1 = x0 + 1; + int y0 = (y > 0.0? (int)y: (int)y - 1); + int y1 = y0 + 1; + int z0 = (z > 0.0? (int)z: (int)z - 1); + int z1 = z0 + 1; + + // Map the difference between the coordinates of the input value and the + // coordinates of the cube's outer-lower-left vertex onto an S-curve. + double xs = 0, ys = 0, zs = 0; + switch (noiseQuality) { + case QUALITY_FAST: + xs = (x - (double)x0); + ys = (y - (double)y0); + zs = (z - (double)z0); + break; + case QUALITY_STD: + xs = SCurve3 (x - (double)x0); + ys = SCurve3 (y - (double)y0); + zs = SCurve3 (z - (double)z0); + break; + case QUALITY_BEST: + xs = SCurve5 (x - (double)x0); + ys = SCurve5 (y - (double)y0); + zs = SCurve5 (z - (double)z0); + break; + } + + // Now calculate the noise values at each vertex of the cube. To generate + // the coherent-noise value at the input point, interpolate these eight + // noise values using the S-curve value as the interpolant (trilinear + // interpolation.) + double n0, n1, ix0, ix1, iy0, iy1; + n0 = ValueNoise3D (x0, y0, z0, seed); + n1 = ValueNoise3D (x1, y0, z0, seed); + ix0 = LinearInterp (n0, n1, xs); + n0 = ValueNoise3D (x0, y1, z0, seed); + n1 = ValueNoise3D (x1, y1, z0, seed); + ix1 = LinearInterp (n0, n1, xs); + iy0 = LinearInterp (ix0, ix1, ys); + n0 = ValueNoise3D (x0, y0, z1, seed); + n1 = ValueNoise3D (x1, y0, z1, seed); + ix0 = LinearInterp (n0, n1, xs); + n0 = ValueNoise3D (x0, y1, z1, seed); + n1 = ValueNoise3D (x1, y1, z1, seed); + ix1 = LinearInterp (n0, n1, xs); + iy1 = LinearInterp (ix0, ix1, ys); + return LinearInterp (iy0, iy1, zs); +} + +double noise::ValueNoise3D (int x, int y, int z, int seed) +{ + return 1.0 - ((double)IntValueNoise3D (x, y, z, seed) / 1073741824.0); +} +
@@ -0,0 +1,208 @@+// noisegen.h +// +// Copyright (C) 2003, 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#ifndef NOISE_NOISEGEN_H +#define NOISE_NOISEGEN_H + +#include <math.h> +#include "basictypes.h" + +namespace noise +{ + + /// @addtogroup libnoise + /// @{ + + /// Enumerates the noise quality. + enum NoiseQuality + { + + /// Generates coherent noise quickly. When a coherent-noise function with + /// this quality setting is used to generate a bump-map image, there are + /// noticeable "creasing" artifacts in the resulting image. This is + /// because the derivative of that function is discontinuous at integer + /// boundaries. + QUALITY_FAST = 0, + + /// Generates standard-quality coherent noise. When a coherent-noise + /// function with this quality setting is used to generate a bump-map + /// image, there are some minor "creasing" artifacts in the resulting + /// image. This is because the second derivative of that function is + /// discontinuous at integer boundaries. + QUALITY_STD = 1, + + /// Generates the best-quality coherent noise. When a coherent-noise + /// function with this quality setting is used to generate a bump-map + /// image, there are no "creasing" artifacts in the resulting image. This + /// is because the first and second derivatives of that function are + /// continuous at integer boundaries. + QUALITY_BEST = 2 + + }; + + /// Generates a gradient-coherent-noise value from the coordinates of a + /// three-dimensional input value. + /// + /// @param x The @a x coordinate of the input value. + /// @param y The @a y coordinate of the input value. + /// @param z The @a z coordinate of the input value. + /// @param seed The random number seed. + /// @param noiseQuality The quality of the coherent-noise. + /// + /// @returns The generated gradient-coherent-noise value. + /// + /// The return value ranges from -1.0 to +1.0. + /// + /// For an explanation of the difference between <i>gradient</i> noise and + /// <i>value</i> noise, see the comments for the GradientNoise3D() function. + double GradientCoherentNoise3D (double x, double y, double z, int seed = 0, + NoiseQuality noiseQuality = QUALITY_STD); + + /// Generates a gradient-noise value from the coordinates of a + /// three-dimensional input value and the integer coordinates of a + /// nearby three-dimensional value. + /// + /// @param fx The floating-point @a x coordinate of the input value. + /// @param fy The floating-point @a y coordinate of the input value. + /// @param fz The floating-point @a z coordinate of the input value. + /// @param ix The integer @a x coordinate of a nearby value. + /// @param iy The integer @a y coordinate of a nearby value. + /// @param iz The integer @a z coordinate of a nearby value. + /// @param seed The random number seed. + /// + /// @returns The generated gradient-noise value. + /// + /// @pre The difference between @a fx and @a ix must be less than or equal + /// to one. + /// + /// @pre The difference between @a fy and @a iy must be less than or equal + /// to one. + /// + /// @pre The difference between @a fz and @a iz must be less than or equal + /// to one. + /// + /// A <i>gradient</i>-noise function generates better-quality noise than a + /// <i>value</i>-noise function. Most noise modules use gradient noise for + /// this reason, although it takes much longer to calculate. + /// + /// The return value ranges from -1.0 to +1.0. + /// + /// This function generates a gradient-noise value by performing the + /// following steps: + /// - It first calculates a random normalized vector based on the + /// nearby integer value passed to this function. + /// - It then calculates a new value by adding this vector to the + /// nearby integer value passed to this function. + /// - It then calculates the dot product of the above-generated value + /// and the floating-point input value passed to this function. + /// + /// A noise function differs from a random-number generator because it + /// always returns the same output value if the same input value is passed + /// to it. + double GradientNoise3D (double fx, double fy, double fz, int ix, int iy, + int iz, int seed = 0); + + /// Generates an integer-noise value from the coordinates of a + /// three-dimensional input value. + /// + /// @param x The integer @a x coordinate of the input value. + /// @param y The integer @a y coordinate of the input value. + /// @param z The integer @a z coordinate of the input value. + /// @param seed A random number seed. + /// + /// @returns The generated integer-noise value. + /// + /// The return value ranges from 0 to 2147483647. + /// + /// A noise function differs from a random-number generator because it + /// always returns the same output value if the same input value is passed + /// to it. + int IntValueNoise3D (int x, int y, int z, int seed = 0); + + /// Modifies a floating-point value so that it can be stored in a + /// noise::int32 variable. + /// + /// @param n A floating-point number. + /// + /// @returns The modified floating-point number. + /// + /// This function does not modify @a n. + /// + /// In libnoise, the noise-generating algorithms are all integer-based; + /// they use variables of type noise::int32. Before calling a noise + /// function, pass the @a x, @a y, and @a z coordinates to this function to + /// ensure that these coordinates can be cast to a noise::int32 value. + /// + /// Although you could do a straight cast from double to noise::int32, the + /// resulting value may differ between platforms. By using this function, + /// you ensure that the resulting value is identical between platforms. + inline double MakeInt32Range (double n) + { + if (n >= 1073741824.0) { + return (2.0 * fmod (n, 1073741824.0)) - 1073741824.0; + } else if (n <= -1073741824.0) { + return (2.0 * fmod (n, 1073741824.0)) + 1073741824.0; + } else { + return n; + } + } + + /// Generates a value-coherent-noise value from the coordinates of a + /// three-dimensional input value. + /// + /// @param x The @a x coordinate of the input value. + /// @param y The @a y coordinate of the input value. + /// @param z The @a z coordinate of the input value. + /// @param seed The random number seed. + /// @param noiseQuality The quality of the coherent-noise. + /// + /// @returns The generated value-coherent-noise value. + /// + /// The return value ranges from -1.0 to +1.0. + /// + /// For an explanation of the difference between <i>gradient</i> noise and + /// <i>value</i> noise, see the comments for the GradientNoise3D() function. + double ValueCoherentNoise3D (double x, double y, double z, int seed = 0, + NoiseQuality noiseQuality = QUALITY_STD); + + /// Generates a value-noise value from the coordinates of a + /// three-dimensional input value. + /// + /// @param x The @a x coordinate of the input value. + /// @param y The @a y coordinate of the input value. + /// @param z The @a z coordinate of the input value. + /// @param seed A random number seed. + /// + /// @returns The generated value-noise value. + /// + /// The return value ranges from -1.0 to +1.0. + /// + /// A noise function differs from a random-number generator because it + /// always returns the same output value if the same input value is passed + /// to it. + double ValueNoise3D (int x, int y, int z, int seed = 0); + + /// @} + +} + +#endif
@@ -0,0 +1,290 @@+// vectortable.h +// +// Written by Jason Bevins. Actually it's the output of a program written +// by me. I'm not going to copyright a bunch of random numbers (although +// you could probably do so in the States, the way things are going down +// there :-) +// +// This file is in the public domain. +// + +#ifndef NOISE_VECTORTABLE_H +#define NOISE_VECTORTABLE_H + +#ifndef DOXYGEN_SHOULD_SKIP_THIS + +namespace noise +{ + + // A table of 256 random normalized vectors. Each row is an (x, y, z, 0) + // coordinate. The 0 is used as padding so we can use bit shifts to index + // any row in the table. These vectors have an even statistical + // distribution, which improves the quality of the coherent noise + // generated by these vectors. For more information, see "GPU Gems", + // Chapter 5 - Implementing Improved Perlin Noise by Ken Perlin, + // specifically page 76. + double g_randomVectors[256 * 4] = + { + -0.763874, -0.596439, -0.246489, 0.0, + 0.396055, 0.904518, -0.158073, 0.0, + -0.499004, -0.8665, -0.0131631, 0.0, + 0.468724, -0.824756, 0.316346, 0.0, + 0.829598, 0.43195, 0.353816, 0.0, + -0.454473, 0.629497, -0.630228, 0.0, + -0.162349, -0.869962, -0.465628, 0.0, + 0.932805, 0.253451, 0.256198, 0.0, + -0.345419, 0.927299, -0.144227, 0.0, + -0.715026, -0.293698, -0.634413, 0.0, + -0.245997, 0.717467, -0.651711, 0.0, + -0.967409, -0.250435, -0.037451, 0.0, + 0.901729, 0.397108, -0.170852, 0.0, + 0.892657, -0.0720622, -0.444938, 0.0, + 0.0260084, -0.0361701, 0.999007, 0.0, + 0.949107, -0.19486, 0.247439, 0.0, + 0.471803, -0.807064, -0.355036, 0.0, + 0.879737, 0.141845, 0.453809, 0.0, + 0.570747, 0.696415, 0.435033, 0.0, + -0.141751, -0.988233, -0.0574584, 0.0, + -0.58219, -0.0303005, 0.812488, 0.0, + -0.60922, 0.239482, -0.755975, 0.0, + 0.299394, -0.197066, -0.933557, 0.0, + -0.851615, -0.220702, -0.47544, 0.0, + 0.848886, 0.341829, -0.403169, 0.0, + -0.156129, -0.687241, 0.709453, 0.0, + -0.665651, 0.626724, 0.405124, 0.0, + 0.595914, -0.674582, 0.43569, 0.0, + 0.171025, -0.509292, 0.843428, 0.0, + 0.78605, 0.536414, -0.307222, 0.0, + 0.18905, -0.791613, 0.581042, 0.0, + -0.294916, 0.844994, 0.446105, 0.0, + 0.342031, -0.58736, -0.7335, 0.0, + 0.57155, 0.7869, 0.232635, 0.0, + 0.885026, -0.408223, 0.223791, 0.0, + -0.789518, 0.571645, 0.223347, 0.0, + 0.774571, 0.31566, 0.548087, 0.0, + -0.79695, -0.0433603, -0.602487, 0.0, + -0.142425, -0.473249, -0.869339, 0.0, + -0.0698838, 0.170442, 0.982886, 0.0, + 0.687815, -0.484748, 0.540306, 0.0, + 0.543703, -0.534446, -0.647112, 0.0, + 0.97186, 0.184391, -0.146588, 0.0, + 0.707084, 0.485713, -0.513921, 0.0, + 0.942302, 0.331945, 0.043348, 0.0, + 0.499084, 0.599922, 0.625307, 0.0, + -0.289203, 0.211107, 0.9337, 0.0, + 0.412433, -0.71667, -0.56239, 0.0, + 0.87721, -0.082816, 0.47291, 0.0, + -0.420685, -0.214278, 0.881538, 0.0, + 0.752558, -0.0391579, 0.657361, 0.0, + 0.0765725, -0.996789, 0.0234082, 0.0, + -0.544312, -0.309435, -0.779727, 0.0, + -0.455358, -0.415572, 0.787368, 0.0, + -0.874586, 0.483746, 0.0330131, 0.0, + 0.245172, -0.0838623, 0.965846, 0.0, + 0.382293, -0.432813, 0.81641, 0.0, + -0.287735, -0.905514, 0.311853, 0.0, + -0.667704, 0.704955, -0.239186, 0.0, + 0.717885, -0.464002, -0.518983, 0.0, + 0.976342, -0.214895, 0.0240053, 0.0, + -0.0733096, -0.921136, 0.382276, 0.0, + -0.986284, 0.151224, -0.0661379, 0.0, + -0.899319, -0.429671, 0.0812908, 0.0, + 0.652102, -0.724625, 0.222893, 0.0, + 0.203761, 0.458023, -0.865272, 0.0, + -0.030396, 0.698724, -0.714745, 0.0, + -0.460232, 0.839138, 0.289887, 0.0, + -0.0898602, 0.837894, 0.538386, 0.0, + -0.731595, 0.0793784, 0.677102, 0.0, + -0.447236, -0.788397, 0.422386, 0.0, + 0.186481, 0.645855, -0.740335, 0.0, + -0.259006, 0.935463, 0.240467, 0.0, + 0.445839, 0.819655, -0.359712, 0.0, + 0.349962, 0.755022, -0.554499, 0.0, + -0.997078, -0.0359577, 0.0673977, 0.0, + -0.431163, -0.147516, -0.890133, 0.0, + 0.299648, -0.63914, 0.708316, 0.0, + 0.397043, 0.566526, -0.722084, 0.0, + -0.502489, 0.438308, -0.745246, 0.0, + 0.0687235, 0.354097, 0.93268, 0.0, + -0.0476651, -0.462597, 0.885286, 0.0, + -0.221934, 0.900739, -0.373383, 0.0, + -0.956107, -0.225676, 0.186893, 0.0, + -0.187627, 0.391487, -0.900852, 0.0, + -0.224209, -0.315405, 0.92209, 0.0, + -0.730807, -0.537068, 0.421283, 0.0, + -0.0353135, -0.816748, 0.575913, 0.0, + -0.941391, 0.176991, -0.287153, 0.0, + -0.154174, 0.390458, 0.90762, 0.0, + -0.283847, 0.533842, 0.796519, 0.0, + -0.482737, -0.850448, 0.209052, 0.0, + -0.649175, 0.477748, 0.591886, 0.0, + 0.885373, -0.405387, -0.227543, 0.0, + -0.147261, 0.181623, -0.972279, 0.0, + 0.0959236, -0.115847, -0.988624, 0.0, + -0.89724, -0.191348, 0.397928, 0.0, + 0.903553, -0.428461, -0.00350461, 0.0, + 0.849072, -0.295807, -0.437693, 0.0, + 0.65551, 0.741754, -0.141804, 0.0, + 0.61598, -0.178669, 0.767232, 0.0, + 0.0112967, 0.932256, -0.361623, 0.0, + -0.793031, 0.258012, 0.551845, 0.0, + 0.421933, 0.454311, 0.784585, 0.0, + -0.319993, 0.0401618, -0.946568, 0.0, + -0.81571, 0.551307, -0.175151, 0.0, + -0.377644, 0.00322313, 0.925945, 0.0, + 0.129759, -0.666581, -0.734052, 0.0, + 0.601901, -0.654237, -0.457919, 0.0, + -0.927463, -0.0343576, -0.372334, 0.0, + -0.438663, -0.868301, -0.231578, 0.0, + -0.648845, -0.749138, -0.133387, 0.0, + 0.507393, -0.588294, 0.629653, 0.0, + 0.726958, 0.623665, 0.287358, 0.0, + 0.411159, 0.367614, -0.834151, 0.0, + 0.806333, 0.585117, -0.0864016, 0.0, + 0.263935, -0.880876, 0.392932, 0.0, + 0.421546, -0.201336, 0.884174, 0.0, + -0.683198, -0.569557, -0.456996, 0.0, + -0.117116, -0.0406654, -0.992285, 0.0, + -0.643679, -0.109196, -0.757465, 0.0, + -0.561559, -0.62989, 0.536554, 0.0, + 0.0628422, 0.104677, -0.992519, 0.0, + 0.480759, -0.2867, -0.828658, 0.0, + -0.228559, -0.228965, -0.946222, 0.0, + -0.10194, -0.65706, -0.746914, 0.0, + 0.0689193, -0.678236, 0.731605, 0.0, + 0.401019, -0.754026, 0.52022, 0.0, + -0.742141, 0.547083, -0.387203, 0.0, + -0.00210603, -0.796417, -0.604745, 0.0, + 0.296725, -0.409909, -0.862513, 0.0, + -0.260932, -0.798201, 0.542945, 0.0, + -0.641628, 0.742379, 0.192838, 0.0, + -0.186009, -0.101514, 0.97729, 0.0, + 0.106711, -0.962067, 0.251079, 0.0, + -0.743499, 0.30988, -0.592607, 0.0, + -0.795853, -0.605066, -0.0226607, 0.0, + -0.828661, -0.419471, -0.370628, 0.0, + 0.0847218, -0.489815, -0.8677, 0.0, + -0.381405, 0.788019, -0.483276, 0.0, + 0.282042, -0.953394, 0.107205, 0.0, + 0.530774, 0.847413, 0.0130696, 0.0, + 0.0515397, 0.922524, 0.382484, 0.0, + -0.631467, -0.709046, 0.313852, 0.0, + 0.688248, 0.517273, 0.508668, 0.0, + 0.646689, -0.333782, -0.685845, 0.0, + -0.932528, -0.247532, -0.262906, 0.0, + 0.630609, 0.68757, -0.359973, 0.0, + 0.577805, -0.394189, 0.714673, 0.0, + -0.887833, -0.437301, -0.14325, 0.0, + 0.690982, 0.174003, 0.701617, 0.0, + -0.866701, 0.0118182, 0.498689, 0.0, + -0.482876, 0.727143, 0.487949, 0.0, + -0.577567, 0.682593, -0.447752, 0.0, + 0.373768, 0.0982991, 0.922299, 0.0, + 0.170744, 0.964243, -0.202687, 0.0, + 0.993654, -0.035791, -0.106632, 0.0, + 0.587065, 0.4143, -0.695493, 0.0, + -0.396509, 0.26509, -0.878924, 0.0, + -0.0866853, 0.83553, -0.542563, 0.0, + 0.923193, 0.133398, -0.360443, 0.0, + 0.00379108, -0.258618, 0.965972, 0.0, + 0.239144, 0.245154, -0.939526, 0.0, + 0.758731, -0.555871, 0.33961, 0.0, + 0.295355, 0.309513, 0.903862, 0.0, + 0.0531222, -0.91003, -0.411124, 0.0, + 0.270452, 0.0229439, -0.96246, 0.0, + 0.563634, 0.0324352, 0.825387, 0.0, + 0.156326, 0.147392, 0.976646, 0.0, + -0.0410141, 0.981824, 0.185309, 0.0, + -0.385562, -0.576343, -0.720535, 0.0, + 0.388281, 0.904441, 0.176702, 0.0, + 0.945561, -0.192859, -0.262146, 0.0, + 0.844504, 0.520193, 0.127325, 0.0, + 0.0330893, 0.999121, -0.0257505, 0.0, + -0.592616, -0.482475, -0.644999, 0.0, + 0.539471, 0.631024, -0.557476, 0.0, + 0.655851, -0.027319, -0.754396, 0.0, + 0.274465, 0.887659, 0.369772, 0.0, + -0.123419, 0.975177, -0.183842, 0.0, + -0.223429, 0.708045, 0.66989, 0.0, + -0.908654, 0.196302, 0.368528, 0.0, + -0.95759, -0.00863708, 0.288005, 0.0, + 0.960535, 0.030592, 0.276472, 0.0, + -0.413146, 0.907537, 0.0754161, 0.0, + -0.847992, 0.350849, -0.397259, 0.0, + 0.614736, 0.395841, 0.68221, 0.0, + -0.503504, -0.666128, -0.550234, 0.0, + -0.268833, -0.738524, -0.618314, 0.0, + 0.792737, -0.60001, -0.107502, 0.0, + -0.637582, 0.508144, -0.579032, 0.0, + 0.750105, 0.282165, -0.598101, 0.0, + -0.351199, -0.392294, -0.850155, 0.0, + 0.250126, -0.960993, -0.118025, 0.0, + -0.732341, 0.680909, -0.0063274, 0.0, + -0.760674, -0.141009, 0.633634, 0.0, + 0.222823, -0.304012, 0.926243, 0.0, + 0.209178, 0.505671, 0.836984, 0.0, + 0.757914, -0.56629, -0.323857, 0.0, + -0.782926, -0.339196, 0.52151, 0.0, + -0.462952, 0.585565, 0.665424, 0.0, + 0.61879, 0.194119, -0.761194, 0.0, + 0.741388, -0.276743, 0.611357, 0.0, + 0.707571, 0.702621, 0.0752872, 0.0, + 0.156562, 0.819977, 0.550569, 0.0, + -0.793606, 0.440216, 0.42, 0.0, + 0.234547, 0.885309, -0.401517, 0.0, + 0.132598, 0.80115, -0.58359, 0.0, + -0.377899, -0.639179, 0.669808, 0.0, + -0.865993, -0.396465, 0.304748, 0.0, + -0.624815, -0.44283, 0.643046, 0.0, + -0.485705, 0.825614, -0.287146, 0.0, + -0.971788, 0.175535, 0.157529, 0.0, + -0.456027, 0.392629, 0.798675, 0.0, + -0.0104443, 0.521623, -0.853112, 0.0, + -0.660575, -0.74519, 0.091282, 0.0, + -0.0157698, -0.307475, -0.951425, 0.0, + -0.603467, -0.250192, 0.757121, 0.0, + 0.506876, 0.25006, 0.824952, 0.0, + 0.255404, 0.966794, 0.00884498, 0.0, + 0.466764, -0.874228, -0.133625, 0.0, + 0.475077, -0.0682351, -0.877295, 0.0, + -0.224967, -0.938972, -0.260233, 0.0, + -0.377929, -0.814757, -0.439705, 0.0, + -0.305847, 0.542333, -0.782517, 0.0, + 0.26658, -0.902905, -0.337191, 0.0, + 0.0275773, 0.322158, -0.946284, 0.0, + 0.0185422, 0.716349, 0.697496, 0.0, + -0.20483, 0.978416, 0.0273371, 0.0, + -0.898276, 0.373969, 0.230752, 0.0, + -0.00909378, 0.546594, 0.837349, 0.0, + 0.6602, -0.751089, 0.000959236, 0.0, + 0.855301, -0.303056, 0.420259, 0.0, + 0.797138, 0.0623013, -0.600574, 0.0, + 0.48947, -0.866813, 0.0951509, 0.0, + 0.251142, 0.674531, 0.694216, 0.0, + -0.578422, -0.737373, -0.348867, 0.0, + -0.254689, -0.514807, 0.818601, 0.0, + 0.374972, 0.761612, 0.528529, 0.0, + 0.640303, -0.734271, -0.225517, 0.0, + -0.638076, 0.285527, 0.715075, 0.0, + 0.772956, -0.15984, -0.613995, 0.0, + 0.798217, -0.590628, 0.118356, 0.0, + -0.986276, -0.0578337, -0.154644, 0.0, + -0.312988, -0.94549, 0.0899272, 0.0, + -0.497338, 0.178325, 0.849032, 0.0, + -0.101136, -0.981014, 0.165477, 0.0, + -0.521688, 0.0553434, -0.851339, 0.0, + -0.786182, -0.583814, 0.202678, 0.0, + -0.565191, 0.821858, -0.0714658, 0.0, + 0.437895, 0.152598, -0.885981, 0.0, + -0.92394, 0.353436, -0.14635, 0.0, + 0.212189, -0.815162, -0.538969, 0.0, + -0.859262, 0.143405, -0.491024, 0.0, + 0.991353, 0.112814, 0.0670273, 0.0, + 0.0337884, -0.979891, -0.196654, 0.0 + }; + +} + +#endif + +#endif
@@ -0,0 +1,28 @@+// dllmain.cpp +// +// Copyright (C) 2004 Jason Bevins +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation; either version 2.1 of the License, or (at +// your option) any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +// License (COPYING.txt) for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// The developer's email is jlbezigvins@gmzigail.com (for great email, take +// off every 'zig'.) +// + +#include <windows.h> + +BOOL WINAPI DllMain (HINSTANCE hInst, ULONG reason, LPVOID lpReserved) +{ + return TRUE; +}
@@ -0,0 +1,154 @@+LIBRARY libnoise + +EXPORTS + ?LatLonToXYZ@noise@@YAXNNAAN00@Z @ 1 + ?GradientNoise3D@noise@@YANNNNHHHH@Z @ 2 + ?IntValueNoise3D@noise@@YAHHHHH@Z @ 3 + ?ValueNoise3D@noise@@YANHHHH@Z @ 6 + ??0Add@module@noise@@QAE@XZ @ 9 + ?GetValue@Add@module@noise@@UBENNNN@Z @ 10 + ?GetSourceModule@Module@module@noise@@UBEABV123@H@Z @ 11 + ?SetSourceModule@Module@module@noise@@UAEXHABV123@@Z @ 12 + ?GetSourceModuleCount@Add@module@noise@@UBEHXZ @ 13 + ??0Blend@module@noise@@QAE@XZ @ 14 + ?GetValue@Blend@module@noise@@UBENNNN@Z @ 15 + ?GetSourceModuleCount@Blend@module@noise@@UBEHXZ @ 16 + ??0Cache@module@noise@@QAE@XZ @ 17 + ?GetValue@Cache@module@noise@@UBENNNN@Z @ 18 + ?GetSourceModuleCount@Cache@module@noise@@UBEHXZ @ 19 + ?SetSourceModule@Cache@module@noise@@UAEXHABVModule@23@@Z @ 20 + ??0Checkerboard@module@noise@@QAE@XZ @ 21 + ?GetValue@Checkerboard@module@noise@@UBENNNN@Z @ 22 + ?GetSourceModuleCount@Checkerboard@module@noise@@UBEHXZ @ 24 + ??0Clamp@module@noise@@QAE@XZ @ 25 + ?GetValue@Clamp@module@noise@@UBENNNN@Z @ 26 + ?SetBounds@Clamp@module@noise@@QAEXNN@Z @ 27 + ?GetSourceModuleCount@Clamp@module@noise@@UBEHXZ @ 28 + ??0Const@module@noise@@QAE@XZ @ 29 + ?GetSourceModuleCount@Const@module@noise@@UBEHXZ @ 30 + ?GetValue@Const@module@noise@@UBENNNN@Z @ 31 + ??0Curve@module@noise@@QAE@XZ @ 32 + ?AddControlPoint@Curve@module@noise@@QAEXNN@Z @ 34 + ?ClearAllControlPoints@Curve@module@noise@@QAEXXZ @ 35 + ?FindInsertionPos@Curve@module@noise@@IAEHN@Z @ 36 + ?GetValue@Curve@module@noise@@UBENNNN@Z @ 37 + ?InsertAtPos@Curve@module@noise@@IAEXHNN@Z @ 38 + ?GetSourceModuleCount@Curve@module@noise@@UBEHXZ @ 42 + ??0Cylinders@module@noise@@QAE@XZ @ 43 + ?GetValue@Cylinders@module@noise@@UBENNNN@Z @ 44 + ?GetSourceModuleCount@Cylinders@module@noise@@UBEHXZ @ 46 + ??0Displace@module@noise@@QAE@XZ @ 47 + ?GetValue@Displace@module@noise@@UBENNNN@Z @ 48 + ?GetSourceModuleCount@Displace@module@noise@@UBEHXZ @ 49 + ??0Exponent@module@noise@@QAE@XZ @ 50 + ?GetValue@Exponent@module@noise@@UBENNNN@Z @ 51 + ?GetSourceModuleCount@Exponent@module@noise@@UBEHXZ @ 52 + ??0Invert@module@noise@@QAE@XZ @ 53 + ?GetValue@Invert@module@noise@@UBENNNN@Z @ 54 + ?GetSourceModuleCount@Invert@module@noise@@UBEHXZ @ 55 + ??0Max@module@noise@@QAE@XZ @ 56 + ?GetValue@Max@module@noise@@UBENNNN@Z @ 57 + ?GetSourceModuleCount@Max@module@noise@@UBEHXZ @ 59 + ??0Min@module@noise@@QAE@XZ @ 60 + ?GetValue@Min@module@noise@@UBENNNN@Z @ 61 + ?GetSourceModuleCount@Min@module@noise@@UBEHXZ @ 62 + ??0Module@module@noise@@QAE@H@Z @ 63 + ??0Multiply@module@noise@@QAE@XZ @ 64 + ?GetValue@Multiply@module@noise@@UBENNNN@Z @ 65 + ?GetSourceModuleCount@Multiply@module@noise@@UBEHXZ @ 66 + ??0Perlin@module@noise@@QAE@XZ @ 67 + ?GetValue@Perlin@module@noise@@UBENNNN@Z @ 68 + ?GetSourceModuleCount@Perlin@module@noise@@UBEHXZ @ 69 + ??0Power@module@noise@@QAE@XZ @ 70 + ?GetValue@Power@module@noise@@UBENNNN@Z @ 71 + ?GetSourceModuleCount@Power@module@noise@@UBEHXZ @ 72 + ??0RidgedMulti@module@noise@@QAE@XZ @ 73 + ?GetValue@RidgedMulti@module@noise@@UBENNNN@Z @ 74 + ?GetSourceModuleCount@RidgedMulti@module@noise@@UBEHXZ @ 75 + ??0RotatePoint@module@noise@@QAE@XZ @ 76 + ?GetValue@RotatePoint@module@noise@@UBENNNN@Z @ 77 + ?SetAngles@RotatePoint@module@noise@@QAEXNNN@Z @ 78 + ?GetSourceModuleCount@RotatePoint@module@noise@@UBEHXZ @ 79 + ??0ScaleBias@module@noise@@QAE@XZ @ 80 + ?GetValue@ScaleBias@module@noise@@UBENNNN@Z @ 81 + ?GetSourceModuleCount@ScaleBias@module@noise@@UBEHXZ @ 82 + ??0ScalePoint@module@noise@@QAE@XZ @ 83 + ?GetValue@ScalePoint@module@noise@@UBENNNN@Z @ 84 + ?GetSourceModuleCount@ScalePoint@module@noise@@UBEHXZ @ 85 + ??0Select@module@noise@@QAE@XZ @ 86 + ?GetValue@Select@module@noise@@UBENNNN@Z @ 87 + ?SetBounds@Select@module@noise@@QAEXNN@Z @ 88 + ?SetEdgeFalloff@Select@module@noise@@QAEXN@Z @ 89 + ?GetSourceModuleCount@Select@module@noise@@UBEHXZ @ 90 + ??0Spheres@module@noise@@QAE@XZ @ 91 + ?GetValue@Spheres@module@noise@@UBENNNN@Z @ 92 + ?GetSourceModuleCount@Spheres@module@noise@@UBEHXZ @ 93 + ??0Terrace@module@noise@@QAE@XZ @ 94 + ?FindInsertionPos@Terrace@module@noise@@IAEHN@Z @ 98 + ?GetValue@Terrace@module@noise@@UBENNNN@Z @ 99 + ?InsertAtPos@Terrace@module@noise@@IAEXHN@Z @ 100 + ?GetSourceModuleCount@Terrace@module@noise@@UBEHXZ @ 103 + ??0Turbulence@module@noise@@QAE@XZ @ 104 + ?GetFrequency@Turbulence@module@noise@@QBENXZ @ 105 + ?GetSeed@Turbulence@module@noise@@QBEHXZ @ 106 + ?GetValue@Turbulence@module@noise@@UBENNNN@Z @ 107 + ?SetSeed@Turbulence@module@noise@@QAEXH@Z @ 109 + ?GetSourceModuleCount@Turbulence@module@noise@@UBEHXZ @ 115 + ??0Voronoi@module@noise@@QAE@XZ @ 116 + ?GetValue@Voronoi@module@noise@@UBENNNN@Z @ 117 + ?GetSourceModuleCount@Voronoi@module@noise@@UBEHXZ @ 118 + ??0Abs@module@noise@@QAE@XZ @ 119 + ?GetValue@Abs@module@noise@@UBENNNN@Z @ 120 + ?GetSourceModuleCount@Abs@module@noise@@UBEHXZ @ 121 + ??0Line@model@noise@@QAE@XZ @ 122 + ?GetValue@Line@model@noise@@QBENN@Z @ 123 + ??0Plane@model@noise@@QAE@XZ @ 124 + ?GetValue@Plane@model@noise@@QBENNN@Z @ 125 + ??0Sphere@model@noise@@QAE@XZ @ 126 + ?GetValue@Sphere@model@noise@@QBENNN@Z @ 127 + ??0Cylinder@model@noise@@QAE@XZ @ 128 + ?GetValue@Cylinder@model@noise@@QBENNN@Z @ 129 + ??_7Add@module@noise@@6B@ @ 130 + ??_7Blend@module@noise@@6B@ @ 131 + ??_7Cache@module@noise@@6B@ @ 132 + ??_7Checkerboard@module@noise@@6B@ @ 133 + ??_7Clamp@module@noise@@6B@ @ 134 + ??_7Const@module@noise@@6B@ @ 135 + ??_7Curve@module@noise@@6B@ @ 136 + ??_7Module@module@noise@@6B@ @ 137 + ??_7Cylinders@module@noise@@6B@ @ 138 + ??_7Displace@module@noise@@6B@ @ 139 + ??_7Exponent@module@noise@@6B@ @ 140 + ??_7Invert@module@noise@@6B@ @ 141 + ??_7Max@module@noise@@6B@ @ 142 + ??_7Min@module@noise@@6B@ @ 143 + ??_7Multiply@module@noise@@6B@ @ 144 + ??_7Perlin@module@noise@@6B@ @ 145 + ??_7Power@module@noise@@6B@ @ 146 + ??_7RidgedMulti@module@noise@@6B@ @ 147 + ??_7RotatePoint@module@noise@@6B@ @ 148 + ??_7ScaleBias@module@noise@@6B@ @ 149 + ??_7ScalePoint@module@noise@@6B@ @ 150 + ??_7Select@module@noise@@6B@ @ 151 + ??_7Spheres@module@noise@@6B@ @ 152 + ??_7Terrace@module@noise@@6B@ @ 153 + ??_7Turbulence@module@noise@@6B@ @ 154 + ??_7Voronoi@module@noise@@6B@ @ 155 + ??_7Abs@module@noise@@6B@ @ 156 + ??0Billow@module@noise@@QAE@XZ @ 159 + ?GetValue@Billow@module@noise@@UBENNNN@Z @ 160 + ?GetSourceModuleCount@Billow@module@noise@@UBEHXZ @ 161 + ??_7Billow@module@noise@@6B@ @ 163 + ?CalcSpectralWeights@RidgedMulti@module@noise@@IAEXXZ @ 164 + ??0TranslatePoint@module@noise@@QAE@XZ @ 166 + ?GetValue@TranslatePoint@module@noise@@UBENNNN@Z @ 167 + ?GetSourceModuleCount@TranslatePoint@module@noise@@UBEHXZ @ 168 + ??_7TranslatePoint@module@noise@@6B@ @ 169 + ?AddControlPoint@Terrace@module@noise@@QAEXN@Z @ 170 + ?ClearAllControlPoints@Terrace@module@noise@@QAEXXZ @ 171 + ?MakeControlPoints@Terrace@module@noise@@QAEXH@Z @ 172 + ?GradientCoherentNoise3D@noise@@YANNNNHW4NoiseQuality@1@@Z @ 173 + ?ValueCoherentNoise3D@noise@@YANNNNHW4NoiseQuality@1@@Z @ 174 + ??1Terrace@module@noise@@UAE@XZ @ 175 + ??1Curve@module@noise@@UAE@XZ @ 176 + ??1Module@module@noise@@UAE@XZ @ 177
binary file changed (absent → 31404 bytes)
@@ -0,0 +1,106 @@+//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#include ""afxres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "Comments", "Licensed under the GNU LGPL\0" + VALUE "CompanyName", "\0" + VALUE "FileDescription", "Library for generating coherent noise\0" + VALUE "FileVersion", "1.0.0\0" + VALUE "InternalName", "libnoise\0" + VALUE "LegalCopyright", "Copyright © 2004, 2007 Jason Bevins\0" + VALUE "OriginalFilename", "libnoise.dll\0" + VALUE "ProductName", "libnoise\0" + VALUE "ProductVersion", "1.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED +
@@ -0,0 +1,15 @@+//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by noise.rc +// + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif
@@ -0,0 +1,65 @@+import Control.Monad ( when )+import Data.Bits ( (.&.) )+import Foreign ( withArray )+import System.Exit ( exitFailure, exitWith, ExitCode(ExitSuccess) )+import Graphics.UI.GLUT+import Maybe++-- Noisy stuff+import Math.Noise.Modules.Perlin+{-+import Math.Noise.Modules.ScaleBias+import Math.Noise.Modules.Abs+import Math.Noise.Modules.Billow+import Math.Noise.Modules.Select+-}+import Math.Noise.NoiseModule+-- import Gradient++-- Vector stuff+import Data.Vector.Storable+import Foreign.ForeignPtr++import TexNoiseVect+import Criterion.Main+++main2 :: IO()+main2 = defaultMain [+ bench "perlin 512x512" $ benchmark 512+ , bench "perlin 1024x1024" $ benchmark 1024+ , bench "perlin 2048x2048" $ benchmark 2048+ ]++main :: IO ()+main = do+ (progName, _args) <- getArgsAndInitialize+ case _args of+ ["show"] -> showTex + ["256"] -> defaultMain [ bench "perlin 256x256" $ benchmark 256 ]+ ["512"] -> defaultMain [ bench "perlin 512x512" $ benchmark 512 ]+ ["1024"] -> defaultMain [ bench "perlin 1024x1024" $ benchmark 1024 ]+ _ -> defaultMain [ bench "perlin 256x256" $ benchmarkAndProfile 256 + , bench "perlin 512x512" $ benchmarkAndProfile 512+ , bench "perlin 1024x1024" $ benchmarkAndProfile 1024+ -- , bench "perlin 2048x2048" $ benchmarkAndProfile 2048+ ]++showTex = do + initialDisplayMode $= [ SingleBuffered, RGBMode, WithDepthBuffer ]+ initialWindowSize $= Size 250 250+ initialWindowPosition $= Position 100 100+ createWindow ""+ -- we have to do this *after* createWindow, otherwise we have no OpenGL context+ version <- get (majorMinor glVersion)+ when (version == (1,0)) $ do+ putStrLn "This program demonstrates a feature which is not in OpenGL Version 1.0."+ putStrLn "If your implementation of OpenGL Version 1.0 has the right extensions,"+ putStrLn "you may be able to modify this program to make it run."+ exitFailure+ texNames <- myInit+ reshapeCallback $= Just reshape+ displayCallback $= display texNames+ keyboardMouseCallback $= Just keyboard+ mainLoop+
@@ -0,0 +1,222 @@+{-# LANGUAGE BangPatterns #-}+module TexNoiseVect where +import Control.Monad ( when )+import Data.Bits ( (.&.) )+import Foreign ( withArray )+import System.Exit ( exitFailure, exitWith, ExitCode(ExitSuccess) )+import Graphics.UI.GLUT+import Maybe++-- Noisy stuff+import Math.Noise.Modules.Perlin+{-+import Noise.Modules.ScaleBias+import Noise.Modules.Abs+import Noise.Modules.Billow+import Noise.Modules.Select+-}+import Math.Noise.NoiseModule+import Math.Noise.NoiseGen+-- import Gradient++-- Vector stuff+import qualified Data.Vector.Storable as V+import Foreign.ForeignPtr++-- Parallel stuff+import Control.Parallel+--import Control.Monad.Parallel++-- Create checkerboard image+checkImageSize :: TextureSize2D+checkImageSize = TextureSize2D 1024 1024++defColor = const Color4 0 0 0 0++noiseParGen :: GLsizei -> GLsizei -> (GLubyte -> Color4 (GLubyte) ) -> Int -> Int -> V.Vector (Color4 GLubyte)++noiseParGen w h f total !tnum | tnum == total = genFunc total + -- | otherwise = (V.++) gen1 $ par gen1 gen2 + | otherwise = par gen1 (seq gen2 (gen1 V.++ gen2))+ where + !ammount = floor $ ((fromIntegral w) * (fromIntegral h)) / (fromIntegral total)+ genFunc !num = V.generate ammount (vecFunc w h f ((num - 1) *ammount) )+ gen1 = genFunc tnum + gen2 = noiseParGen w h f total (tnum + 1)++noiseParGen4 :: GLsizei -> GLsizei -> (GLubyte -> Color4 (GLubyte) ) -> Int -> Int -> Int -> IO (V.Vector (Color4 GLubyte))+noiseParGen4 w h f numt proc1 proc2 = do + -- v1 <- forkExec $ genFunc proc1+ -- let v2 = genFunc proc2+ --return $ v1 V.++ v2+ return $ (genFunc 1) V.++ (genFunc 2) V.++ (genFunc 3) V.++ (genFunc 4)+ where + ammount = floor $ ((fromIntegral w) * (fromIntegral h)) / (fromIntegral numt)+ genFunc num = V.generate ammount (vecFunc w h f ((num - 1) *ammount) )++noiseParGenAll w h f numt = return $ + foldr (V.++) V.empty lst+ where + ammount = floor $ ((fromIntegral w) * (fromIntegral h)) / (fromIntegral numt)+ genFunc num = V.generate ammount (vecFunc w h f ((num - 1) *ammount) )+ lst = map genFunc [1..numt]++noiseGen2 w h f = V.generate ((fromIntegral w) * (fromIntegral h)) (vecFunc w h f 0)++vecFunc w h f baseIndx indx = f c + where c = floor $ (\v -> (v + 1.0) * 127.5 ) $ noiseClampedVal+ realIndx = (fromIntegral baseIndx) + (fromIntegral indx)+ (i,j) = (realIndx `mod` w, floor $ (/) (fromIntegral realIndx) (fromIntegral w) )+ boundBottomX :: Double+ boundBottomX = 0.0+ boundBottomY :: Double+ boundBottomY = 0.0+ boundUpperX :: Double+ boundUpperX = 10.0+ boundUpperY :: Double+ boundUpperY = 10.0+ xsize = w+ ysize = h+ xIncrement :: Double+ xIncrement = (boundUpperX - boundBottomX) / (fromIntegral xsize)+ yIncrement :: Double+ yIncrement = (boundUpperY - boundBottomY) / (fromIntegral ysize)+ xPos x = ((fromIntegral x) * xIncrement) + boundBottomX+ yPos y = ((fromIntegral y) * yIncrement) + boundBottomY++ noiseF :: NoiseModule+ noiseF = gen perlin{ perlinFrequency = 0.6, perlinOctaveCount = 8}++ -- Actual noise computation, getValue returns Maybe Double+ noiseValue = fromMaybe (-1.0) $ getValue noiseF (xPos i, yPos j, 2.123)+ noiseClampedVal = min 1.0 . max (-1.0) $ noiseValue ++withParNoiseVec :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withParNoiseVec (TextureSize2D w h) n f act = + V.unsafeWith (noiseParGen (fromIntegral w) (fromIntegral h) f 4 1) (act . PixelData RGBA UnsignedByte)++withNoiseVec :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withNoiseVec (TextureSize2D w h) n f act =+ V.unsafeWith (noiseGen2 (fromIntegral w) (fromIntegral h) f) (act . PixelData RGBA UnsignedByte)++{-+withNoiseImage :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withNoiseImage (TextureSize2D w h) n f act =+ withArray [ f c |+ i <- [ 0 .. w - 1 ],+ j <- [ 0 .. h - 1 ],+ let c = floor $ (\v -> (v + 1.0) * 127.5 ) $ noiseClampedVal+ boundBottomX :: Double+ boundBottomX = 0.0+ boundBottomY :: Double+ boundBottomY = 0.0+ boundUpperX :: Double+ boundUpperX = 10.0+ boundUpperY :: Double+ boundUpperY = 10.0+ xsize = w+ ysize = h+ xIncrement :: Double+ xIncrement = (boundUpperX - boundBottomX) / (fromIntegral xsize)+ yIncrement :: Double+ yIncrement = (boundUpperY - boundBottomY) / (fromIntegral ysize)+ xPos x = ((fromIntegral x) * xIncrement) + boundBottomX+ yPos y = ((fromIntegral y) * yIncrement) + boundBottomY++ noiseF :: NoiseModule+ -- noiseF = gen perlin { perlinFrequency = 0.6, perlinOctaveCount = 5 }+ noiseF = gen billow { billowFrequency = 0.6, billowOctaves = 5 }++ -- Actual noise computation, getValue returns Maybe Double+ noiseValue = fromMaybe (-1.0) $ getValue noiseF (xPos i, yPos j, 2.123)+ -- Make sure the noiseValue is in the [-1.0, 1.0] range+ noiseClampedVal = if noiseValue > 1.0 + then 1.0+ else if noiseValue < (-1.0) then (-1.0)+ else noiseValue+ ] $+ act . PixelData RGBA UnsignedByte+ -}++withCheckImage :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withCheckImage (TextureSize2D w h) n f act =+ withArray [ f c |+ i <- [ 0 .. w - 1 ],+ j <- [ 0 .. h - 1 ],+ let c | (i .&. n) == (j .&. n) = 0+ | otherwise = 255 ] $+ act . PixelData RGBA UnsignedByte++benchmark :: Int -> IO()+benchmark n = withNoiseVec (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0x18 (\c -> Color4 c c c 255) $+ texImage2D Nothing NoProxy 0 RGBA' (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0++benchmarkAndProfile :: Int -> IO()+benchmarkAndProfile n = withNoiseVec (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0x18 (\c -> Color4 c c c 255) $+ texImage2D Nothing NoProxy 0 RGBA' (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0++myInit :: IO (TextureObject, TextureObject)+myInit = do+ clearColor $= Color4 0 0 0 0+ shadeModel $= Flat+ depthFunc $= Just Less+ rowAlignment Unpack $= 1++ [texName0, texName1] <- genObjectNames 2+ textureBinding Texture2D $= Just texName0+ textureWrapMode Texture2D S $= (Repeated, Clamp)+ textureWrapMode Texture2D T $= (Repeated, Clamp)+ textureFilter Texture2D $= ((Nearest, Nothing), Nearest)+ withParNoiseVec checkImageSize 0x18 (\c -> Color4 c c c 255) $+ texImage2D Nothing NoProxy 0 RGBA' checkImageSize 0++{-+ textureBinding Texture2D $= Just texName1+ textureWrapMode Texture2D S $= (Repeated, Clamp)+ textureWrapMode Texture2D T $= (Repeated, Clamp)+ textureFilter Texture2D $= ((Nearest, Nothing), Nearest)+ textureFunction $= Decal+ withParNoiseVec checkImageSize 0x10 (\c -> Color4 c 0 0 255) $+ texImage2D Nothing NoProxy 0 RGBA' checkImageSize 0+-}+ texture Texture2D $= Enabled+ return (texName0, texName1)++display :: (TextureObject, TextureObject) -> DisplayCallback+display (texName0, texName1) = do+ clear [ ColorBuffer, DepthBuffer ]+ -- resolve overloading, not needed in "real" programs+ let texCoord2f = texCoord :: TexCoord2 GLfloat -> IO ()+ vertex3f = vertex :: Vertex3 GLfloat -> IO ()+ textureBinding Texture2D $= Just texName0+ renderPrimitive Quads $ do+ texCoord2f (TexCoord2 0 0); vertex3f (Vertex3 (-2.0) (-1.0) 0.0 )+ texCoord2f (TexCoord2 0 1); vertex3f (Vertex3 (-2.0) 1.0 0.0 )+ texCoord2f (TexCoord2 1 1); vertex3f (Vertex3 0.0 1.0 0.0 )+ texCoord2f (TexCoord2 1 0); vertex3f (Vertex3 0.0 (-1.0) 0.0 )+ textureBinding Texture2D $= Just texName0+ renderPrimitive Quads $ do+ texCoord2f (TexCoord2 0 0); vertex3f (Vertex3 1.0 (-1.0) 0.0 )+ texCoord2f (TexCoord2 0 1); vertex3f (Vertex3 1.0 1.0 0.0 )+ texCoord2f (TexCoord2 1 1); vertex3f (Vertex3 2.41421 1.0 (-1.41421))+ texCoord2f (TexCoord2 1 0); vertex3f (Vertex3 2.41421 (-1.0) (-1.41421))+ flush+ -- exitWith ExitSuccess++reshape :: ReshapeCallback+reshape size@(Size w h) = do+ viewport $= (Position 0 0, size)+ matrixMode $= Projection+ loadIdentity+ perspective 60 (fromIntegral w / fromIntegral h) 1 30+ matrixMode $= Modelview 0+ loadIdentity+ translate (Vector3 0 0 (-3.6 :: GLfloat))++keyboard :: KeyboardMouseCallback+keyboard (Char '\27') Down _ _ = exitWith ExitSuccess+keyboard _ _ _ _ = return ()
@@ -0,0 +1,254 @@+{-# LANGUAGE BangPatterns #-}+module TexNoiseVect where +import Control.Monad ( when )+import Data.Bits ( (.&.) )+import Foreign ( withArray )+import System.Exit ( exitFailure, exitWith, ExitCode(ExitSuccess) )+import Graphics.UI.GLUT+import Maybe++-- Noisy stuff+import Math.Noise.Modules.Perlin+{-+import Noise.Modules.ScaleBias+import Noise.Modules.Abs+import Noise.Modules.Billow+import Noise.Modules.Select+-}+import Math.Noise.NoiseModule+import Math.Noise.NoiseGen+-- import Gradient++-- Vector stuff+import qualified Data.Vector.Storable as V+import Foreign.ForeignPtr++-- Parallel stuff+import Control.Parallel+--import Control.Monad.Parallel++-- Create checkerboard image+checkImageSize :: TextureSize2D+checkImageSize = TextureSize2D 1024 1024++defColor = const Color4 0 0 0 0++noiseParGen :: GLsizei -> GLsizei -> (GLubyte -> Color4 (GLubyte) ) -> Int -> Int -> V.Vector (Color4 GLubyte)++noiseParGen w h f total !tnum | tnum == total = genFunc total + -- | otherwise = (V.++) gen1 $ par gen1 gen2 + | otherwise = par gen1 (seq gen2 (gen1 V.++ gen2))+ where + !ammount = floor $ ((fromIntegral w) * (fromIntegral h)) / (fromIntegral total)+ genFunc !num = V.generate ammount (vecFunc w h f ((num - 1) *ammount) )+ gen1 = genFunc tnum + gen2 = noiseParGen w h f total (tnum + 1)++noiseParGen4 :: GLsizei -> GLsizei -> (GLubyte -> Color4 (GLubyte) ) -> Int -> Int -> Int -> IO (V.Vector (Color4 GLubyte))+noiseParGen4 w h f numt proc1 proc2 = do + -- v1 <- forkExec $ genFunc proc1+ -- let v2 = genFunc proc2+ --return $ v1 V.++ v2+ return $ (genFunc 1) V.++ (genFunc 2) V.++ (genFunc 3) V.++ (genFunc 4)+ where + ammount = floor $ ((fromIntegral w) * (fromIntegral h)) / (fromIntegral numt)+ genFunc num = V.generate ammount (vecFunc w h f ((num - 1) *ammount) )++noiseParGenAll w h f numt = return $ + foldr (V.++) V.empty lst+ where + ammount = floor $ ((fromIntegral w) * (fromIntegral h)) / (fromIntegral numt)+ genFunc num = V.generate ammount (vecFunc w h f ((num - 1) *ammount) )+ lst = map genFunc [1..numt]++noiseGen2 w h f = V.generate ((fromIntegral w) * (fromIntegral h)) (vecFunc w h f 0)++vecFunc w h f baseIndx indx = f c + where c = floor $ (\v -> (v + 1.0) * 127.5 ) $ noiseClampedVal+ realIndx = (fromIntegral baseIndx) + (fromIntegral indx)+ (i,j) = (realIndx `mod` w, floor $ (/) (fromIntegral realIndx) (fromIntegral w) )+ boundBottomX :: Double+ boundBottomX = 0.0+ boundBottomY :: Double+ boundBottomY = 0.0+ boundUpperX :: Double+ boundUpperX = 10.0+ boundUpperY :: Double+ boundUpperY = 10.0+ xsize = w+ ysize = h+ xIncrement :: Double+ xIncrement = (boundUpperX - boundBottomX) / (fromIntegral xsize)+ yIncrement :: Double+ yIncrement = (boundUpperY - boundBottomY) / (fromIntegral ysize)+ xPos x = ((fromIntegral x) * xIncrement) + boundBottomX+ yPos y = ((fromIntegral y) * yIncrement) + boundBottomY++ noiseF :: NoiseModule+ noiseF = gen perlin{ perlinFrequency = 0.6, perlinOctaveCount = 8}++ -- Actual noise computation, getValue returns Maybe Double+ noiseValue = fromMaybe (-1.0) $ getValue noiseF (xPos i, yPos j, 2.123)+ noiseClampedVal = min 1.0 . max (-1.0) $ noiseValue ++noiseGen1 w h f = (V.fromList [ f c |+ i <- [ 0 .. w - 1 ],+ j <- [ 0 .. h - 1 ],+ let c = floor $ (\v -> (v + 1.0) * 127.5 ) $ noiseClampedVal+ boundBottomX :: Double+ boundBottomX = 0.0+ boundBottomY :: Double+ boundBottomY = 0.0+ boundUpperX :: Double+ boundUpperX = 10.0+ boundUpperY :: Double+ boundUpperY = 10.0+ xsize = w+ ysize = h+ xIncrement :: Double+ xIncrement = (boundUpperX - boundBottomX) / (fromIntegral xsize)+ yIncrement :: Double+ yIncrement = (boundUpperY - boundBottomY) / (fromIntegral ysize)+ xPos x = ((fromIntegral x) * xIncrement) + boundBottomX+ yPos y = ((fromIntegral y) * yIncrement) + boundBottomY++ noiseF :: NoiseModule+ -- noiseF = gen perlin { perlinFrequency = 0.6, perlinOctaveCount = 5 }+ noiseF = gen billow { billowFrequency = 0.6, billowOctaves = 5 }++ -- Actual noise computation, getValue returns Maybe Double+ noiseValue = fromMaybe (-1.0) $ getValue noiseF (xPos i, yPos j, 2.123)+ -- Make sure the noiseValue is in the [-1.0, 1.0] range+ noiseClampedVal = if noiseValue > 1.0 + then 1.0+ else if noiseValue < (-1.0) then (-1.0)+ else noiseValue+ ])++withParNoiseVec :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withParNoiseVec (TextureSize2D w h) n f act = + V.unsafeWith (noiseParGen (fromIntegral w) (fromIntegral h) f 4 1) (act . PixelData RGBA UnsignedByte)++withNoiseVec :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withNoiseVec (TextureSize2D w h) n f act =+ V.unsafeWith (noiseGen2 (fromIntegral w) (fromIntegral h) f) (act . PixelData RGBA UnsignedByte)++withNoiseImage :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withNoiseImage (TextureSize2D w h) n f act =+ withArray [ f c |+ i <- [ 0 .. w - 1 ],+ j <- [ 0 .. h - 1 ],+ let c = floor $ (\v -> (v + 1.0) * 127.5 ) $ noiseClampedVal+ boundBottomX :: Double+ boundBottomX = 0.0+ boundBottomY :: Double+ boundBottomY = 0.0+ boundUpperX :: Double+ boundUpperX = 10.0+ boundUpperY :: Double+ boundUpperY = 10.0+ xsize = w+ ysize = h+ xIncrement :: Double+ xIncrement = (boundUpperX - boundBottomX) / (fromIntegral xsize)+ yIncrement :: Double+ yIncrement = (boundUpperY - boundBottomY) / (fromIntegral ysize)+ xPos x = ((fromIntegral x) * xIncrement) + boundBottomX+ yPos y = ((fromIntegral y) * yIncrement) + boundBottomY++ noiseF :: NoiseModule+ -- noiseF = gen perlin { perlinFrequency = 0.6, perlinOctaveCount = 5 }+ noiseF = gen billow { billowFrequency = 0.6, billowOctaves = 5 }++ -- Actual noise computation, getValue returns Maybe Double+ noiseValue = fromMaybe (-1.0) $ getValue noiseF (xPos i, yPos j, 2.123)+ -- Make sure the noiseValue is in the [-1.0, 1.0] range+ noiseClampedVal = if noiseValue > 1.0 + then 1.0+ else if noiseValue < (-1.0) then (-1.0)+ else noiseValue+ ] $+ act . PixelData RGBA UnsignedByte++withCheckImage :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withCheckImage (TextureSize2D w h) n f act =+ withArray [ f c |+ i <- [ 0 .. w - 1 ],+ j <- [ 0 .. h - 1 ],+ let c | (i .&. n) == (j .&. n) = 0+ | otherwise = 255 ] $+ act . PixelData RGBA UnsignedByte++benchmark :: Int -> IO()+benchmark n = withNoiseVec (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0x18 (\c -> Color4 c c c 255) $+ texImage2D Nothing NoProxy 0 RGBA' (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0++benchmarkAndProfile :: Int -> IO()+benchmarkAndProfile n = withNoiseVec (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0x18 (\c -> Color4 c c c 255) $+ texImage2D Nothing NoProxy 0 RGBA' (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0++myInit :: IO (TextureObject, TextureObject)+myInit = do+ clearColor $= Color4 0 0 0 0+ shadeModel $= Flat+ depthFunc $= Just Less+ rowAlignment Unpack $= 1++ [texName0, texName1] <- genObjectNames 2+ textureBinding Texture2D $= Just texName0+ textureWrapMode Texture2D S $= (Repeated, Clamp)+ textureWrapMode Texture2D T $= (Repeated, Clamp)+ textureFilter Texture2D $= ((Nearest, Nothing), Nearest)+ withParNoiseVec checkImageSize 0x18 (\c -> Color4 c c c 255) $+ texImage2D Nothing NoProxy 0 RGBA' checkImageSize 0++{-+ textureBinding Texture2D $= Just texName1+ textureWrapMode Texture2D S $= (Repeated, Clamp)+ textureWrapMode Texture2D T $= (Repeated, Clamp)+ textureFilter Texture2D $= ((Nearest, Nothing), Nearest)+ textureFunction $= Decal+ withParNoiseVec checkImageSize 0x10 (\c -> Color4 c 0 0 255) $+ texImage2D Nothing NoProxy 0 RGBA' checkImageSize 0+-}+ texture Texture2D $= Enabled+ return (texName0, texName1)++display :: (TextureObject, TextureObject) -> DisplayCallback+display (texName0, texName1) = do+ clear [ ColorBuffer, DepthBuffer ]+ -- resolve overloading, not needed in "real" programs+ let texCoord2f = texCoord :: TexCoord2 GLfloat -> IO ()+ vertex3f = vertex :: Vertex3 GLfloat -> IO ()+ textureBinding Texture2D $= Just texName0+ renderPrimitive Quads $ do+ texCoord2f (TexCoord2 0 0); vertex3f (Vertex3 (-2.0) (-1.0) 0.0 )+ texCoord2f (TexCoord2 0 1); vertex3f (Vertex3 (-2.0) 1.0 0.0 )+ texCoord2f (TexCoord2 1 1); vertex3f (Vertex3 0.0 1.0 0.0 )+ texCoord2f (TexCoord2 1 0); vertex3f (Vertex3 0.0 (-1.0) 0.0 )+ textureBinding Texture2D $= Just texName0+ renderPrimitive Quads $ do+ texCoord2f (TexCoord2 0 0); vertex3f (Vertex3 1.0 (-1.0) 0.0 )+ texCoord2f (TexCoord2 0 1); vertex3f (Vertex3 1.0 1.0 0.0 )+ texCoord2f (TexCoord2 1 1); vertex3f (Vertex3 2.41421 1.0 (-1.41421))+ texCoord2f (TexCoord2 1 0); vertex3f (Vertex3 2.41421 (-1.0) (-1.41421))+ flush+ -- exitWith ExitSuccess++reshape :: ReshapeCallback+reshape size@(Size w h) = do+ viewport $= (Position 0 0, size)+ matrixMode $= Projection+ loadIdentity+ perspective 60 (fromIntegral w / fromIntegral h) 1 30+ matrixMode $= Modelview 0+ loadIdentity+ translate (Vector3 0 0 (-3.6 :: GLfloat))++keyboard :: KeyboardMouseCallback+keyboard (Char '\27') Down _ _ = exitWith ExitSuccess+keyboard _ _ _ _ = return ()
@@ -0,0 +1,56 @@+{-# LANGUAGE ForeignFunctionInterface #-}+module Billow where+import Math.Noise.NoiseGen+import Math.Noise.NoiseModule+import Foreign+import Foreign.C.Types++{-+foreign import ccall "billow.h billowGen"+ c_billow :: CDouble -> CDouble -> CDouble + -> CDouble -> CDouble -> CInt + -> CDouble -> CInt + -> CDouble+-}++data Billow = Billow { billowFrequency+ , billowLacunarity+ , billowPersistence :: Double+ , billowOctaves+ , billowSeed + , billowMaxOctave :: Int+ }++billow :: Billow+billow = Billow { billowFrequency = 1.0+ , billowLacunarity = 2.0+ , billowPersistence = 0.5+ , billowOctaves = 6+ , billowSeed = 125+ , billowMaxOctave = 30+ }++instance NoiseClass Billow where+ getNoiseValue (Billow { billowFrequency = freq + , billowLacunarity = lac+ , billowOctaves = octaveCount+ , billowPersistence = pers+ , billowSeed = seed+ , billowMaxOctave = maxoctv+ } ) _ (x,y,z) =+ Just . (+) 0.5 . value $ + foldr octaveFunc (0.0, 1.0, ix, iy, iz) [0..octaveCount]+ where ix = x * freq+ iy = y * freq+ iz = z * freq+ fromDouble = fromInteger . floor+ value (v,_,_,_,_) = v+ signal sx sy sz octv = 2.0 * (abs $ gradientCoherentNoise3D sx sy sz (octaveSeed octv)) - 1.0+ octaveSeed octv = seed + octv+ octaveFunc curOctave (value, curPersistence, ox, oy, oz) =+ ( value + ( (signal ox oy oz curOctave) * curPersistence)+ , curPersistence * pers+ , ox * lac+ , oy * lac+ , oz * lac+ )
@@ -0,0 +1,63 @@+import Control.Monad ( when )+import Data.Bits ( (.&.) )+import Foreign ( withArray )+import System.Exit ( exitFailure, exitWith, ExitCode(ExitSuccess) )+import Graphics.UI.GLUT+import Maybe++-- Noisy stuff+import Math.Noise.Modules.Perlin+-- import Math.Noise.Modules.ScaleBias+-- import Math.Noise.Modules.Abs+-- import Math.Noise.Modules.Billow+-- import Math.Noise.Modules.Select+import Math.Noise.NoiseModule+-- import Gradient+-- import Noise.Test++-- Vector stuff+import Data.Vector.Storable+import Foreign.ForeignPtr++import TexNoiseVect+import Criterion.Main+++main2 :: IO()+main2 = defaultMain [+ bench "perlin 512x512" $ benchmark 512+ , bench "perlin 1024x1024" $ benchmark 1024+ , bench "perlin 2048x2048" $ benchmark 2048+ ]++main :: IO ()+main = do+ (progName, _args) <- getArgsAndInitialize+ case _args of+ ["show"] -> showTex + ["512"] -> defaultMain [ bench "perlin 512x512" $ benchmark 1024 ]+ ["1024"] -> defaultMain [ bench "perlin 1024x1024" $ benchmark 1024 ]+ _ -> defaultMain [ bench "perlin 256x256" $ benchmarkAndProfile 256 + , bench "perlin 512x512" $ benchmarkAndProfile 512+ , bench "perlin 1024x1024" $ benchmarkAndProfile 1024+ -- , bench "perlin 2048x2048" $ benchmarkAndProfile 2048+ ]++showTex = do + initialDisplayMode $= [ SingleBuffered, RGBMode, WithDepthBuffer ]+ initialWindowSize $= Size 250 250+ initialWindowPosition $= Position 100 100+ createWindow ""+ -- we have to do this *after* createWindow, otherwise we have no OpenGL context+ version <- get (majorMinor glVersion)+ when (version == (1,0)) $ do+ putStrLn "This program demonstrates a feature which is not in OpenGL Version 1.0."+ putStrLn "If your implementation of OpenGL Version 1.0 has the right extensions,"+ putStrLn "you may be able to modify this program to make it run."+ exitFailure+ texNames <- myInit+ reshapeCallback $= Just reshape+ displayCallback $= display texNames+ keyboardMouseCallback $= Just keyboard+ mainLoop+
@@ -0,0 +1,156 @@+import Control.Monad ( when )+import Data.Bits ( (.&.) )+import Foreign ( withArray )+import System.Exit ( exitFailure, exitWith, ExitCode(ExitSuccess) )+import Graphics.UI.GLUT+import Maybe++-- Noisy stuff+import Noise.Modules.Perlin+import Noise.Modules.ScaleBias+import Noise.Modules.Abs+import Noise.Modules.Billow+import Noise.Modules.Select+import Noise.NoiseModule+import Gradient+import Noise.Test++-- Vector stuff+import Data.Vector.Storable+import Foreign.ForeignPtr++-- Create checkerboard image+checkImageSize :: TextureSize2D+checkImageSize = TextureSize2D 512 512++withNoiseImage :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withNoiseImage (TextureSize2D w h) n f act =+ withArray [ f c |+ i <- [ 0 .. w - 1 ],+ j <- [ 0 .. h - 1 ],+ let c = floor $ (\v -> (v + 1.0) * 127.5 ) $ noiseClampedVal+ boundBottomX :: Double+ boundBottomX = 0.0+ boundBottomY :: Double+ boundBottomY = 0.0+ boundUpperX :: Double+ boundUpperX = 10.0+ boundUpperY :: Double+ boundUpperY = 10.0+ xsize = w+ ysize = h+ xIncrement :: Double+ xIncrement = (boundUpperX - boundBottomX) / (fromIntegral xsize)+ yIncrement :: Double+ yIncrement = (boundUpperY - boundBottomY) / (fromIntegral ysize)+ xPos x = ((fromIntegral x) * xIncrement) + boundBottomX+ yPos y = ((fromIntegral y) * yIncrement) + boundBottomY++ noiseF :: NoiseModule+ -- noiseF = gen perlin { perlinFrequency = 0.6, perlinOctaveCount = 5 }+ noiseF = gen billow { billowFrequency = 0.6, billowOctaves = 5 }++ -- Actual noise computation, getValue returns Maybe Double+ noiseValue = fromMaybe (-1.0) $ getValue noiseF (xPos i, yPos j, 2.123)+ -- Make sure the noiseValue is in the [-1.0, 1.0] range+ noiseClampedVal = if noiseValue > 1.0 + then 1.0+ else if noiseValue < (-1.0) then (-1.0)+ else noiseValue+ + + ] $+ act . PixelData RGBA UnsignedByte+++withCheckImage :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withCheckImage (TextureSize2D w h) n f act =+ withArray [ f c |+ i <- [ 0 .. w - 1 ],+ j <- [ 0 .. h - 1 ],+ let c | (i .&. n) == (j .&. n) = 0+ | otherwise = 255 ] $+ act . PixelData RGBA UnsignedByte++myInit :: IO (TextureObject, TextureObject)+myInit = do+ clearColor $= Color4 0 0 0 0+ shadeModel $= Flat+ depthFunc $= Just Less+ rowAlignment Unpack $= 1++ [texName0, texName1] <- genObjectNames 2+ textureBinding Texture2D $= Just texName0+ textureWrapMode Texture2D S $= (Repeated, Clamp)+ textureWrapMode Texture2D T $= (Repeated, Clamp)+ textureFilter Texture2D $= ((Nearest, Nothing), Nearest)+ withNoiseImage checkImageSize 0x18 (\c -> Color4 c c c 255) $+ texImage2D Nothing NoProxy 0 RGBA' checkImageSize 0++ textureBinding Texture2D $= Just texName1+ textureWrapMode Texture2D S $= (Repeated, Clamp)+ textureWrapMode Texture2D T $= (Repeated, Clamp)+ textureFilter Texture2D $= ((Nearest, Nothing), Nearest)+ textureFunction $= Decal+ withNoiseImage checkImageSize 0x10 (\c -> Color4 c 0 0 255) $+ texImage2D Nothing NoProxy 0 RGBA' checkImageSize 0+ texture Texture2D $= Enabled+ return (texName0, texName1)++display :: (TextureObject, TextureObject) -> DisplayCallback+display (texName0, texName1) = do+ clear [ ColorBuffer, DepthBuffer ]+ -- resolve overloading, not needed in "real" programs+ let texCoord2f = texCoord :: TexCoord2 GLfloat -> IO ()+ vertex3f = vertex :: Vertex3 GLfloat -> IO ()+ textureBinding Texture2D $= Just texName0+ renderPrimitive Quads $ do+ texCoord2f (TexCoord2 0 0); vertex3f (Vertex3 (-2.0) (-1.0) 0.0 )+ texCoord2f (TexCoord2 0 1); vertex3f (Vertex3 (-2.0) 1.0 0.0 )+ texCoord2f (TexCoord2 1 1); vertex3f (Vertex3 0.0 1.0 0.0 )+ texCoord2f (TexCoord2 1 0); vertex3f (Vertex3 0.0 (-1.0) 0.0 )+ textureBinding Texture2D $= Just texName1+ renderPrimitive Quads $ do+ texCoord2f (TexCoord2 0 0); vertex3f (Vertex3 1.0 (-1.0) 0.0 )+ texCoord2f (TexCoord2 0 1); vertex3f (Vertex3 1.0 1.0 0.0 )+ texCoord2f (TexCoord2 1 1); vertex3f (Vertex3 2.41421 1.0 (-1.41421))+ texCoord2f (TexCoord2 1 0); vertex3f (Vertex3 2.41421 (-1.0) (-1.41421))+ flush+ exitWith ExitSuccess++reshape :: ReshapeCallback+reshape size@(Size w h) = do+ viewport $= (Position 0 0, size)+ matrixMode $= Projection+ loadIdentity+ perspective 60 (fromIntegral w / fromIntegral h) 1 30+ matrixMode $= Modelview 0+ loadIdentity+ translate (Vector3 0 0 (-3.6 :: GLfloat))++keyboard :: KeyboardMouseCallback+keyboard (Char '\27') Down _ _ = exitWith ExitSuccess+keyboard _ _ _ _ = return ()++main :: IO ()+main = do+ (progName, _args) <- getArgsAndInitialize+ initialDisplayMode $= [ SingleBuffered, RGBMode, WithDepthBuffer ]+ initialWindowSize $= Size 250 250+ initialWindowPosition $= Position 100 100+ createWindow progName+ -- we have to do this *after* createWindow, otherwise we have no OpenGL context+ version <- get (majorMinor glVersion)+ when (version == (1,0)) $ do+ putStrLn "This program demonstrates a feature which is not in OpenGL Version 1.0."+ putStrLn "If your implementation of OpenGL Version 1.0 has the right extensions,"+ putStrLn "you may be able to modify this program to make it run."+ exitFailure+ texNames <- myInit+ reshapeCallback $= Just reshape+ displayCallback $= display texNames+ keyboardMouseCallback $= Just keyboard+ mainLoop+
@@ -0,0 +1,258 @@+{-# LANGUAGE BangPatterns #-}+module TexNoiseVect where +import Control.Monad ( when )+import Data.Bits ( (.&.) )+import Foreign ( withArray )+import System.Exit ( exitFailure, exitWith, ExitCode(ExitSuccess) )+import Graphics.UI.GLUT+import Maybe++-- Noisy stuff+import Math.Noise.Modules.Perlin+import Billow+-- import Math.Noise.Modules.ScaleBias+-- import Math.Noise.Modules.Abs+-- import Math.Noise.Modules.Billow+-- import Math.Noise.Modules.Select+import Math.Noise.NoiseModule+import Math.Noise.NoiseGen+-- import Gradient+-- import Noise.Test++-- Vector stuff+import qualified Data.Vector.Storable as V+import Foreign.ForeignPtr++-- Parallel stuff+import Control.Parallel+--import Control.Monad.Parallel++-- Create checkerboard image+checkImageSize :: TextureSize2D+checkImageSize = TextureSize2D 1024 1024++defColor = const Color4 0 0 0 0++noiseParGen :: GLsizei -> GLsizei -> (GLubyte -> Color4 (GLubyte) ) -> Int -> Int -> V.Vector (Color4 GLubyte)+noiseParGen w h f total !tnum | tnum == total = genFunc total + -- | otherwise = (V.++) gen1 $ par gen1 gen2 + | otherwise = par gen1 (seq gen2 (gen1 V.++ gen2))+ where + !ammount = floor $ ((fromIntegral w) * (fromIntegral h)) / (fromIntegral total)+ genFunc !num = V.generate ammount (vecFunc w h f ((num - 1) *ammount) )+ gen1 = genFunc tnum + gen2 = noiseParGen w h f total (tnum + 1)++noiseParGen4 :: GLsizei -> GLsizei -> (GLubyte -> Color4 (GLubyte) ) -> Int -> Int -> Int -> IO (V.Vector (Color4 GLubyte))+noiseParGen4 w h f numt proc1 proc2 = do + -- v1 <- forkExec $ genFunc proc1+ -- let v2 = genFunc proc2+ --return $ v1 V.++ v2+ return $ (genFunc 1) V.++ (genFunc 2) V.++ (genFunc 3) V.++ (genFunc 4)+ where + ammount = floor $ ((fromIntegral w) * (fromIntegral h)) / (fromIntegral numt)+ genFunc num = V.generate ammount (vecFunc w h f ((num - 1) *ammount) )++noiseParGenAll w h f numt = return $ + foldr (V.++) V.empty lst+ where + ammount = floor $ ((fromIntegral w) * (fromIntegral h)) / (fromIntegral numt)+ genFunc num = V.generate ammount (vecFunc w h f ((num - 1) *ammount) )+ lst = map genFunc [1..numt]++noiseGen2 w h f = V.generate ((fromIntegral w) * (fromIntegral h)) (vecFunc w h f 0)++vecFunc w h f baseIndx indx = f c + where c = floor $ (\v -> (v + 1.0) * 127.5 ) $ noiseClampedVal+ realIndx = (fromIntegral baseIndx) + (fromIntegral indx)+ (i,j) = (realIndx `mod` w, floor $ (/) (fromIntegral realIndx) (fromIntegral w) )+ boundBottomX :: Double+ boundBottomX = 0.0+ boundBottomY :: Double+ boundBottomY = 0.0+ boundUpperX :: Double+ boundUpperX = 10.0+ boundUpperY :: Double+ boundUpperY = 10.0+ xsize = w+ ysize = h+ xIncrement :: Double+ xIncrement = (boundUpperX - boundBottomX) / (fromIntegral xsize)+ yIncrement :: Double+ yIncrement = (boundUpperY - boundBottomY) / (fromIntegral ysize)+ xPos x = ((fromIntegral x) * xIncrement) + boundBottomX+ yPos y = ((fromIntegral y) * yIncrement) + boundBottomY++ noiseF :: NoiseModule+ -- noiseF = gen perlin{ perlinFrequency = 0.6, perlinOctaveCount = 8}+ noiseF = gen billow{ billowFrequency=0.18 }++ -- Actual noise computation, getValue returns Maybe Double+ noiseValue = fromMaybe (-1.0) $ getValue noiseF (xPos i, yPos j, 2.123)+ noiseClampedVal = min 1.0 . max (-1.0) $ noiseValue ++{-+noiseGen1 w h f = (V.fromList [ f c |+ i <- [ 0 .. w - 1 ],+ j <- [ 0 .. h - 1 ],+ let c = floor $ (\v -> (v + 1.0) * 127.5 ) $ noiseClampedVal+ boundBottomX :: Double+ boundBottomX = 0.0+ boundBottomY :: Double+ boundBottomY = 0.0+ boundUpperX :: Double+ boundUpperX = 10.0+ boundUpperY :: Double+ boundUpperY = 10.0+ xsize = w+ ysize = h+ xIncrement :: Double+ xIncrement = (boundUpperX - boundBottomX) / (fromIntegral xsize)+ yIncrement :: Double+ yIncrement = (boundUpperY - boundBottomY) / (fromIntegral ysize)+ xPos x = ((fromIntegral x) * xIncrement) + boundBottomX+ yPos y = ((fromIntegral y) * yIncrement) + boundBottomY++ noiseF :: NoiseModule+ -- noiseF = gen perlin { perlinFrequency = 0.6, perlinOctaveCount = 5 }+ noiseF = gen billow { billowFrequency = 0.6, billowOctaves = 5 }++ -- Actual noise computation, getValue returns Maybe Double+ noiseValue = fromMaybe (-1.0) $ getValue noiseF (xPos i, yPos j, 2.123)+ -- Make sure the noiseValue is in the [-1.0, 1.0] range+ noiseClampedVal = if noiseValue > 1.0 + then 1.0+ else if noiseValue < (-1.0) then (-1.0)+ else noiseValue+ ])+-}++withParNoiseVec :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withParNoiseVec (TextureSize2D w h) n f act = + V.unsafeWith (noiseParGen (fromIntegral w) (fromIntegral h) f 4 1) (act . PixelData RGBA UnsignedByte)++withNoiseVec :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withNoiseVec (TextureSize2D w h) n f act =+ V.unsafeWith (noiseGen2 (fromIntegral w) (fromIntegral h) f) (act . PixelData RGBA UnsignedByte)++{-+withNoiseImage :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withNoiseImage (TextureSize2D w h) n f act =+ withArray [ f c |+ i <- [ 0 .. w - 1 ],+ j <- [ 0 .. h - 1 ],+ let c = floor $ (\v -> (v + 1.0) * 127.5 ) $ noiseClampedVal+ boundBottomX :: Double+ boundBottomX = 0.0+ boundBottomY :: Double+ boundBottomY = 0.0+ boundUpperX :: Double+ boundUpperX = 10.0+ boundUpperY :: Double+ boundUpperY = 10.0+ xsize = w+ ysize = h+ xIncrement :: Double+ xIncrement = (boundUpperX - boundBottomX) / (fromIntegral xsize)+ yIncrement :: Double+ yIncrement = (boundUpperY - boundBottomY) / (fromIntegral ysize)+ xPos x = ((fromIntegral x) * xIncrement) + boundBottomX+ yPos y = ((fromIntegral y) * yIncrement) + boundBottomY++ noiseF :: NoiseModule+ -- noiseF = gen perlin { perlinFrequency = 0.6, perlinOctaveCount = 5 }+ noiseF = gen billow { billowFrequency = 0.6, billowOctaves = 5 }++ -- Actual noise computation, getValue returns Maybe Double+ noiseValue = fromMaybe (-1.0) $ getValue noiseF (xPos i, yPos j, 2.123)+ -- Make sure the noiseValue is in the [-1.0, 1.0] range+ noiseClampedVal = if noiseValue > 1.0 + then 1.0+ else if noiseValue < (-1.0) then (-1.0)+ else noiseValue+ ] $+ act . PixelData RGBA UnsignedByte+ -}++withCheckImage :: TextureSize2D -> GLsizei -> (GLubyte -> (Color4 GLubyte))+ -> (PixelData (Color4 GLubyte) -> IO ()) -> IO ()+withCheckImage (TextureSize2D w h) n f act =+ withArray [ f c |+ i <- [ 0 .. w - 1 ],+ j <- [ 0 .. h - 1 ],+ let c | (i .&. n) == (j .&. n) = 0+ | otherwise = 255 ] $+ act . PixelData RGBA UnsignedByte++benchmark :: Int -> IO()+benchmark n = withNoiseVec (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0x18 (\c -> Color4 c c c 255) $+ texImage2D Nothing NoProxy 0 RGBA' (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0++benchmarkAndProfile :: Int -> IO()+benchmarkAndProfile n = withNoiseVec (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0x18 (\c -> Color4 c c c 255) $+ texImage2D Nothing NoProxy 0 RGBA' (TextureSize2D (fromIntegral n) (fromIntegral n) ) 0++myInit :: IO (TextureObject, TextureObject)+myInit = do+ clearColor $= Color4 0 0 0 0+ shadeModel $= Flat+ depthFunc $= Just Less+ rowAlignment Unpack $= 1++ [texName0, texName1] <- genObjectNames 2+ textureBinding Texture2D $= Just texName0+ textureWrapMode Texture2D S $= (Repeated, Clamp)+ textureWrapMode Texture2D T $= (Repeated, Clamp)+ textureFilter Texture2D $= ((Nearest, Nothing), Nearest)+ withParNoiseVec checkImageSize 0x18 (\c -> Color4 c c c 255) $+ texImage2D Nothing NoProxy 0 RGBA' checkImageSize 0++{-+ textureBinding Texture2D $= Just texName1+ textureWrapMode Texture2D S $= (Repeated, Clamp)+ textureWrapMode Texture2D T $= (Repeated, Clamp)+ textureFilter Texture2D $= ((Nearest, Nothing), Nearest)+ textureFunction $= Decal+ withParNoiseVec checkImageSize 0x10 (\c -> Color4 c 0 0 255) $+ texImage2D Nothing NoProxy 0 RGBA' checkImageSize 0+-}+ texture Texture2D $= Enabled+ return (texName0, texName1)++display :: (TextureObject, TextureObject) -> DisplayCallback+display (texName0, texName1) = do+ clear [ ColorBuffer, DepthBuffer ]+ -- resolve overloading, not needed in "real" programs+ let texCoord2f = texCoord :: TexCoord2 GLfloat -> IO ()+ vertex3f = vertex :: Vertex3 GLfloat -> IO ()+ textureBinding Texture2D $= Just texName0+ renderPrimitive Quads $ do+ texCoord2f (TexCoord2 0 0); vertex3f (Vertex3 (-2.0) (-1.0) 0.0 )+ texCoord2f (TexCoord2 0 1); vertex3f (Vertex3 (-2.0) 1.0 0.0 )+ texCoord2f (TexCoord2 1 1); vertex3f (Vertex3 0.0 1.0 0.0 )+ texCoord2f (TexCoord2 1 0); vertex3f (Vertex3 0.0 (-1.0) 0.0 )+ textureBinding Texture2D $= Just texName0+ renderPrimitive Quads $ do+ texCoord2f (TexCoord2 0 0); vertex3f (Vertex3 1.0 (-1.0) 0.0 )+ texCoord2f (TexCoord2 0 1); vertex3f (Vertex3 1.0 1.0 0.0 )+ texCoord2f (TexCoord2 1 1); vertex3f (Vertex3 2.41421 1.0 (-1.41421))+ texCoord2f (TexCoord2 1 0); vertex3f (Vertex3 2.41421 (-1.0) (-1.41421))+ flush+ -- exitWith ExitSuccess++reshape :: ReshapeCallback+reshape size@(Size w h) = do+ viewport $= (Position 0 0, size)+ matrixMode $= Projection+ loadIdentity+ perspective 60 (fromIntegral w / fromIntegral h) 1 30+ matrixMode $= Modelview 0+ loadIdentity+ translate (Vector3 0 0 (-3.6 :: GLfloat))++keyboard :: KeyboardMouseCallback+keyboard (Char '\27') Down _ _ = exitWith ExitSuccess+keyboard _ _ _ _ = return ()