Ejemplo n.º 1
0
    public static void GetPoint(float majorAngle, float minorAngle, out TorusPointInfo info)
    {
        Vector3 minorCenterDir = Quaternion.AngleAxis(majorAngle, Vector3.up) * Vector3.forward;

        info.minorCenterPoint   = minorCenterDir * MajorRadius;
        info.minorCenterRight   = Vector3.Cross(Vector3.up, minorCenterDir);
        info.minorCenterForward = Quaternion.AngleAxis(minorAngle, info.minorCenterRight) * minorCenterDir;
        info.minorCenterUp      = Vector3.Cross(info.minorCenterForward, info.minorCenterRight);
        info.targetPoint        = info.minorCenterPoint + info.minorCenterForward * MinorRadius;
    }
Ejemplo n.º 2
0
 public static void GetPoint(Vector3 targetPoint, out TorusPointInfo info)
 {
     GetAngle(targetPoint, out float majorAngle, out float minorAngle);
     GetPoint(majorAngle, minorAngle, out info);
 }