Spine.PathConstraint.AddCurvePosition C# (CSharp) Method

AddCurvePosition() private method

private AddCurvePosition ( float p, float x1, float y1, float cx1, float cy1, float cx2, float cy2, float x2, float y2, float output, int o, bool tangents ) : void
p float
x1 float
y1 float
cx1 float
cy1 float
cx2 float
cy2 float
x2 float
y2 float
output float
o int
tangents bool
return void
		private void AddCurvePosition (float p, float x1, float y1, float cx1, float cy1, float cx2, float cy2, float x2, float y2,
			float[] output, int o, bool tangents) {
			if (p == 0 || float.IsNaN(p)) p = 0.0001f;
			float tt = p * p, ttt = tt * p, u = 1 - p, uu = u * u, uuu = uu * u;
			float ut = u * p, ut3 = ut * 3, uut3 = u * ut3, utt3 = ut3 * p;
			float x = x1 * uuu + cx1 * uut3 + cx2 * utt3 + x2 * ttt, y = y1 * uuu + cy1 * uut3 + cy2 * utt3 + y2 * ttt;
			output[o] = x;
			output[o + 1] = y;
			if (tangents) output[o + 2] = (float)Math.Atan2(y - (y1 * uu + cy1 * ut * 2 + cy2 * tt), x - (x1 * uu + cx1 * ut * 2 + cx2 * tt));
		}
	}