public void Reflect(float AxesAngle, float time, int isConjugate) { float axesAngle = 360.0f / (float)ThetaMod; axesAngle *= (float)relativeTheta; relativeTheta = DiskUtility.GetConjugateTheta(relativeTheta, ThetaMod); mSegment.DoReflect(axesAngle, time, relativeTheta, isConjugate); }
void Normalize(int angle = -1) { transform.position = Vector3.zero; transform.localScale = Vector3.one; int targetY = -1; if (angle == -1) { targetY = DiskUtility.GetDegreeTheta(theta, 8); //8 here should be temporary } else { targetY = DiskUtility.GetDegreeTheta(angle, 8); } Quaternion target = Quaternion.Euler(0, targetY, 0); transform.rotation = Quaternion.Slerp(transform.rotation, target, 1); }
void SetReflection(int i) { int conjugateI = DiskUtility.GetConjugateTheta(i, mRelativeSegments [0].ThetaMod); MacroDiskReflectCmd macroCMD; ArrayList dsList = new ArrayList(); ArrayList conDsList = new ArrayList(); foreach (RelativeDiskSegment DS in mRelativeSegments) { if (DS.theta == i) { if (!DS.IsBusy) { dsList.Add(DS); } else { return; } } if (DS.theta == conjugateI) { if (!DS.IsBusy) { conDsList.Add(DS); } else { return; } } } macroCMD = new MacroDiskReflectCmd(dsList, rotateSound, transform); //macroCMD.SetVerificationCondition (i); //macroCMD.Verify (); //macroCMD.AddConjugate (conDsList, conjugateI); macroCMD.AddConjugate(conDsList); diskController.AddCmd(macroCMD); }