float getCrossValue(float globalF, CGBoundsGroup group) { switch (group.DistributionMode) { case CGBoundsGroup.DistributionModeEnum.Parent: return(DTMath.MapValue(-0.5f, 0.5f, CrossBase + m_CrossCurve.Evaluate(globalF) + group.PositionOffset.Next)); case CGBoundsGroup.DistributionModeEnum.Self: return(DTMath.MapValue(-0.5f, 0.5f, group.PositionOffset.Next)); } return(0); }
/// <summary> /// Clamps a float to a range /// </summary> public static float ClampValue(float tf, CurvyClamping clamping, float minTF, float maxTF) { switch (clamping) { case CurvyClamping.Loop: float v1 = DTMath.MapValue(0, 1, tf, minTF, maxTF); return(DTMath.MapValue(minTF, maxTF, Mathf.Repeat(v1, 1), 0, 1)); case CurvyClamping.PingPong: float v2 = DTMath.MapValue(0, 1, tf, minTF, maxTF); return(DTMath.MapValue(minTF, maxTF, Mathf.PingPong(v2, 1), 0, 1)); default: return(Mathf.Clamp(tf, minTF, maxTF)); } }
float getUnrangedCross(float f) { return(DTMath.MapValue(-0.5f, 0.5f, f, CrossFrom, CrossTo)); }
float getRangedCross(float f) { return(DTMath.MapValue(CrossFrom, CrossTo, f, -0.5f, 0.5f)); }