BVB Source Codes

CRYENGINE Show FlowNoiseNodes.h Source code

Return Download CRYENGINE: download FlowNoiseNodes.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. /*************************************************************************
  4.    -------------------------------------------------------------------------
  5.    $Id$
  6.    $DateTime$
  7.    Description: Set of Noise flow nodes based on Ken Perlin's "Improving Noise" article
  8.  
  9.    -------------------------------------------------------------------------
  10.    History:
  11.    - 21:06:2005   16:00 : Created by Marco Koegler
  12.  
  13. *************************************************************************/
  14.  
  15. #pragma once
  16.  
  17. #include <CryMath/PNoise3.h>
  18. #include <CryFlowGraph/IFlowBaseNode.h>
  19.  
  20. //////////////////////////////////////////////////////////////////////////
  21. class CFlowNode_Noise1D : public CFlowBaseNode<eNCT_Singleton>
  22. {
  23. public:
  24.         CFlowNode_Noise1D(SActivationInfo* pActInfo) {};
  25.  
  26.         virtual void GetConfiguration(SFlowNodeConfig& config)
  27.         {
  28.                 static const SInputPortConfig in_config[] = {
  29.                         InputPortConfig<float>("x",         _HELP("value to sample noise at")),
  30.                         InputPortConfig<float>("frequency", 1.0f,                              _HELP("scale factor for input value")),
  31.                         InputPortConfig<float>("amplitude", 1.0f,                              _HELP("range of noise values")),
  32.                         { 0 }
  33.                 };
  34.                 static const SOutputPortConfig out_config[] = {
  35.                         OutputPortConfig<float>("out", _HELP("out = amp * Noise1D(frequency * x)")),
  36.                         { 0 }
  37.                 };
  38.                 config.pInputPorts = in_config;
  39.                 config.pOutputPorts = out_config;
  40.                 config.SetCategory(EFLN_ADVANCED);
  41.         }
  42.  
  43.         virtual void ProcessEvent(EFlowEvent event, SActivationInfo* pActInfo)
  44.         {
  45.                 switch (event)
  46.                 {
  47.                 case eFE_Activate:
  48.                 case eFE_Initialize:
  49.                         float x = GetPortFloat(pActInfo, 0);
  50.                         float freq = GetPortFloat(pActInfo, 1);
  51.                         float amp = GetPortFloat(pActInfo, 2);
  52.  
  53.                         //float out = amp * m_noise.Noise1D(freq * x);
  54.                         float out = amp * gEnv->pSystem->GetNoiseGen()->Noise1D(freq * x);
  55.                         ActivateOutput(pActInfo, 0, out);
  56.                 }
  57.                 ;
  58.         };
  59.  
  60.         virtual void GetMemoryUsage(ICrySizer* s) const
  61.         {
  62.                 s->Add(*this);
  63.         }
  64.  
  65. private:
  66. };
  67.  
  68. class CFlowNode_Noise3D : public CFlowBaseNode<eNCT_Singleton>
  69. {
  70. public:
  71.         CFlowNode_Noise3D(SActivationInfo* pActInfo) {};
  72.  
  73.         virtual void GetConfiguration(SFlowNodeConfig& config)
  74.         {
  75.                 static const SInputPortConfig in_config[] = {
  76.                         InputPortConfig<Vec3>("v",          _HELP("position to sample noise at")),
  77.                         InputPortConfig<float>("frequency", 1.0f,                                 _HELP("scale factor for input vector")),
  78.                         InputPortConfig<float>("amplitude", 1.0f,                                 _HELP("range of noise values")),
  79.                         { 0 }
  80.                 };
  81.                 static const SOutputPortConfig out_config[] = {
  82.                         OutputPortConfig<float>("out", _HELP("out = amp * Noise3D(frequency * v)")),
  83.                         { 0 }
  84.                 };
  85.                 config.pInputPorts = in_config;
  86.                 config.pOutputPorts = out_config;
  87.                 config.SetCategory(EFLN_ADVANCED);
  88.         }
  89.  
  90.         virtual void ProcessEvent(EFlowEvent event, SActivationInfo* pActInfo)
  91.         {
  92.                 switch (event)
  93.                 {
  94.                 case eFE_Activate:
  95.                 case eFE_Initialize:
  96.                         Vec3 v = GetPortVec3(pActInfo, 0);
  97.                         float freq = GetPortFloat(pActInfo, 1);
  98.                         float amp = GetPortFloat(pActInfo, 2);
  99.  
  100.                         float out = amp * gEnv->pSystem->GetNoiseGen()->Noise3D(freq * v.x, freq * v.y, freq * v.z);
  101.                         ActivateOutput(pActInfo, 0, out);
  102.                 }
  103.                 ;
  104.         };
  105.  
  106.         virtual void GetMemoryUsage(ICrySizer* s) const
  107.         {
  108.                 s->Add(*this);
  109.         }
  110.  
  111. private:
  112. };
  113.  
downloadFlowNoiseNodes.h Source code - Download CRYENGINE Source code
Related Source Codes/Software:
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top