コード例 #1
0
        public static OrbitConstraint Lerp(OrbitConstraint a, OrbitConstraint b, float t)
        {
            AxisConstraint yaw   = AxisConstraint.Lerp(a.m_yaw, b.m_yaw, t);
            AxisConstraint pitch = AxisConstraint.Lerp(a.m_pitch, b.m_pitch, t);
            AxisConstraint roll  = AxisConstraint.Lerp(a.m_roll, b.m_roll, t);

            return(new OrbitConstraint(yaw, pitch, roll));
        }
コード例 #2
0
ファイル: Orbit.cs プロジェクト: hddnblde/Orbit-Tech
        public static Orbit Lerp(Orbit a, Orbit b, float t)
        {
            float           yaw        = Mathf.LerpAngle(a.yaw, b.yaw, t);
            float           pitch      = Mathf.LerpAngle(a.pitch, b.pitch, t);
            float           roll       = Mathf.LerpAngle(a.roll, b.roll, t);
            OrbitConstraint constraint = OrbitConstraint.Lerp(a.m_constraint, b.m_constraint, t);

            return(new Orbit(yaw, pitch, roll, constraint));
        }
コード例 #3
0
ファイル: Orbit.cs プロジェクト: hddnblde/Orbit-Tech
 public Orbit(float yaw, float pitch, float roll, OrbitConstraint constraint)
 {
     m_constraint = constraint;
     m_yaw        = constraint.Yaw(yaw);
     m_pitch      = constraint.Pitch(pitch);
     m_roll       = constraint.Roll(roll);
     m_direction  = CalculateDirection(m_yaw, m_pitch);
     m_rotation   = CalculateRotation(m_yaw, m_pitch, m_roll);
 }
コード例 #4
0
ファイル: Orbit.cs プロジェクト: hddnblde/Orbit-Tech
 public void Clone(Orbit copy)
 {
     m_constraint = copy.m_constraint;
     m_yaw        = copy.yaw;
     m_pitch      = copy.pitch;
     m_roll       = copy.roll;
     m_direction  = copy.m_direction;
     m_rotation   = copy.m_rotation;
 }
コード例 #5
0
ファイル: Orbit.cs プロジェクト: hddnblde/Orbit-Tech
        private static Orbit QuaternionToOrbit(Quaternion rotation, OrbitConstraint constraint)
        {
            Vector3 angles = rotation.eulerAngles;

            float yaw   = WrapAxis((-angles.y - 90f));
            float pitch = WrapAxis(angles.x);
            float roll  = WrapAxis(-angles.z);

            return(new Orbit(yaw, pitch, roll, constraint));
        }
コード例 #6
0
ファイル: Orbit.cs プロジェクト: hddnblde/Orbit-Tech
 public Orbit(Quaternion rotation, OrbitConstraint constraint) : this(QuaternionToOrbit(rotation, constraint))
 {
 }
コード例 #7
0
ファイル: Orbit.cs プロジェクト: hddnblde/Orbit-Tech
 public Orbit(Vector3 direction, Vector3 up, OrbitConstraint constraint) : this(DirectionToOrbit(direction, up, constraint))
 {
 }
コード例 #8
0
ファイル: Orbit.cs プロジェクト: hddnblde/Orbit-Tech
 public Orbit(float yaw, float pitch, OrbitConstraint constraint) : this(yaw, pitch, OriginRotation, constraint)
 {
 }
コード例 #9
0
ファイル: Orbit.cs プロジェクト: hddnblde/Orbit-Tech
        private static Orbit DirectionToOrbit(Vector3 direction, Vector3 up, OrbitConstraint constraint)
        {
            Quaternion rotation = Quaternion.LookRotation(direction, up);

            return(QuaternionToOrbit(rotation, constraint));
        }
コード例 #10
0
ファイル: Orbit.cs プロジェクト: hddnblde/Orbit-Tech
 private static Orbit DirectionToOrbit(Vector3 direction, OrbitConstraint constraint)
 {
     return(DirectionToOrbit(direction, Vector3.up, constraint));
 }
コード例 #11
0
ファイル: Orbit.cs プロジェクト: hddnblde/Orbit-Tech
        public void Constrain(AxisConstraint yaw, AxisConstraint pitch, AxisConstraint roll)
        {
            OrbitConstraint constraint = new OrbitConstraint(yaw, pitch, roll);

            Constrain(constraint);
        }
コード例 #12
0
ファイル: Orbit.cs プロジェクト: hddnblde/Orbit-Tech
 public void Constrain(OrbitConstraint constraint)
 {
     m_constraint = constraint;
     WrapAxes();
 }