Beispiel #1
0
        public void Update()
        {
            lock (Transformation)
            {
                var tRotationMatrix = Matrix4.CreateFromQuaternion(Transformation.GetOrientation().Inverted());
                var tViewMatrix     = Matrix4.CreateTranslation(-Transformation.GetPosition()) * RotationMatrix;

                if (cone == null)
                {
                    var tcone = FrustumCone.Create(Transformation.GetPosition(), tViewMatrix, ProjectionMatrix);
                    cone = tcone;
                }
                else
                {
                    FrustumCone.Update(cone, Transformation.GetPosition(), tViewMatrix, ProjectionMatrix);
                }

                RotationMatrix = tRotationMatrix;
                ViewMatrix     = tViewMatrix;
                VPMatrix       = Matrix4.Mult(ViewMatrix, ProjectionMatrix);
            }
        }