Vector3 getScale(float tf) { switch (ScaleModifier) { case MeshScaleModifier.ControlPoint: return(Spline.InterpolateScale(tf)); case MeshScaleModifier.UserValue: return(Spline.InterpolateUserValue(tf, ScaleModifierUserValueSlot)); case MeshScaleModifier.Delegate: return((OnGetScale != null) ? OnGetScale(this, tf) : Vector3.one); case MeshScaleModifier.AnimationCurve: Vector3 v = Vector3.one; if (ScaleModifierCurve != null) { return(v * ScaleModifierCurve.Evaluate(tf)); } else { return(v); } default: return(Vector3.one); } }