31 return PPEConstants.VAR_TYPE_FLOAT;
34 override void Update(
float timeslice, out
Param p_total, out
bool setting_defaults,
int order)
36 super.Update(timeslice,p_total,setting_defaults,order);
38 int active_request_count = 0;
42 bool setting_value_zero =
false;
44 float float_value_temp = 0.0;
45 float float_value_default = 0.0;
46 float float_value_total = 0.0;
50 p_total =
new Param1<float>(0.0);
75 setting_value_zero = req_data.IsSettingDefaultValues();
77 if (setting_value_zero && !req_data.GetUpdatingDataValues() && !req_data.IsDataActive())
83 if (setting_value_zero)
85 req_data.m_FloatTarget = 0;
90 active_request_count++;
95 req_data.m_FloatLast = req_data.m_FloatCurrent;
97 if (!req_data.GetUpdatingDataValues() && req_data.IsDataActive())
99 float_value_temp = req_data.m_FloatCurrent;
100 PrepareLayerInfo(req_data.GetPriorityLayer(),float_value_temp,req_data.GetInteractionMask());
105 float_value_temp = req_data.m_FloatTarget;
108 req_data.SetUpdatingDataValues(
false);
109 if (setting_value_zero)
111 req_data.SetDataActive(
false);
116 float_value_temp = req_data.m_FloatTarget;
117 PrepareLayerInfo(req_data.GetPriorityLayer(),float_value_temp,req_data.GetInteractionMask());
120 req_data.m_FloatCurrent = float_value_temp;
127 bool override_active =
false;
135 float_value_default = float_value_total;
139 if ( override_active )
148 float_value_total =
Math.
Min(float_value_total,value);
152 float_value_total =
Math.
Max(float_value_total,value);
157 float_value_total = float_value_total + value;
161 float_value_total = (1 - float_value_total) * value + float_value_total;
166 float_value_total = float_value_total - value;
170 float_value_total = float_value_total - value * float_value_total;
175 float_value_total = value - float_value_total;
179 float_value_total = value * float_value_total - float_value_total;
184 float_value_total = float_value_total * value;
188 float_value_total = value;
192 float_value_total = value;
197 float_value_total =
Math.
Clamp(float_value_total,0,1);
202 override_active =
true;
211 if (active_request_count == 0)
218 Param1<float>.Cast(p_total).param1 = res;
Super root of all classes in Enforce script.
Created once, on manager init. Script-side representation of C++ material class, separate handling.
ref ActiveParameterRequestsMap m_RequestMap
const int LAYER_INFO_OPERATOR
override int GetParameterVarType()
void PPEMatClassParameterFloat(int mat_idx, int parameter_idx, PPEClassBase parent)
override void Update(float timeslice, out Param p_total, out bool setting_defaults, int order)
override void SetParameterValueDefault(inout Param p_total)
No active requests for the mat. parameter value change, sets the value to DEFAULT.
void AddPriorityInfo(int priority)
Adds 'layers' to be iterated throug.
ref array< int > m_CommandLayersArray
override void InitDefaults()
void PrepareLayerInfo(int layer, bool value, int operator)
ref map< int, ref array< bool, int > > m_LayerInfo
override void InitCuttent()
PPETemplateDefFloat m_Float
void PrepareLayerInfo(int layer, float value, int operator)
ref Param m_CurrentValues
const int LAYER_INFO_VALUE
Base Param Class with no parameters.
PostProcessEffectType
Post-process effect type.
void Error(string err)
Messagebox with error message.
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float Min(float x, float y)
Returns smaller of two given values.
static proto float Lerp(float a, float b, float time)
Linearly interpolates between 'a' and 'b' given 'time'.
PPOperators
PP operators, specify operation between subsequent layers.
Param4< string, float, float, float > PPETemplateDefFloat
void PPEMatClassParameterFloat(int mat_idx, int parameter_idx, PPEClassBase parent)
class PPEMatClassParameterFloat extends PPEMatClassParameterCommandData PPEMatClassParameterFloatSaturation(int mat_idx, int parameter_idx, PPEClassBase parent)
void PPERequestParamDataFloat(int requester_idx, int mat_id, int param_id, int data_type=0, int priority=0, int mask=PPOperators.SET, bool relative=false)