Cross() публичный Метод

public Cross ( Vector vector ) : Vector
vector Vector
Результат Vector
Пример #1
0
        // Rotate camera left or right (aka Pan)
        public void Yaw(float angle)
        {
            // rotate around the up vector (normally the y-axis)
            viewdir = (viewdir * (float) Math.Cos (angle)) - (right * (float) Math.Sin (angle));
            viewdir.Normalize ();

            right = viewdir.Cross (up);
            right.Normalize ();
        }
Пример #2
0
        // Direct the camera toward a specific point in space using the specified upward orientation
        public void LookAt(Vertex point, Vector upVector)
        {
            viewdir = point - position;
            viewdir.Normalize ();

            up = upVector.Normal;

            right = viewdir.Cross (up);
            right.Normalize ();
        }
Пример #3
0
        // Rotate camera up or down (aka Tilt)
        public void Pitch(float angle)
        {
            // rotate around the right vector (normally the x-axis)
            viewdir = (viewdir * (float) Math.Cos (angle)) + (up * (float) Math.Sin (angle));
            viewdir.Normalize ();

            up = viewdir.Cross (right);
            up.Normalize ();
        }
Пример #4
0
        public void LookAt(Vertex point)
        {
            Vector delta = point - position;

            viewdir = delta.Normal;

            if (Math.Abs (delta.x) < 0.00001f && Math.Abs (delta.z) < 0.00001f) {
                delta.x = 0.0f;
                delta.Normalize ();

                right = new Vector (1.0f, 0.0f, 0.0f);
                up = delta.Cross (right);

                right = viewdir.Cross (up) * -1.0f;
            } else {
                delta.y = 0.0f;
                delta.Normalize ();

                up = new Vector (0.0f, 1.0f, 0.0f);
                right = delta.Cross (up) * -1.0f;

                up = viewdir.Cross (right);
            }

            right.Normalize ();
            up.Normalize ();
        }