public IEnumerable<SpriteInfoFromPOV> GetVisibleSprites(double arc, IEnumerable<SpriteInfo> source)
        {
            var a = new List<SpriteInfoFromPOV>();

            var fuzzy = 0.000001;

            var ViewDirectionLeftByArc = (this.ViewDirection - arc + 360.DegreesToRadians()) % 360.DegreesToRadians();
            var ViewDirectionRightByArc = (this.ViewDirection + arc + 360.DegreesToRadians()) % 360.DegreesToRadians();

            foreach (var i in source)
            {
                var v = new SpriteInfoFromPOV(i);

                v.Update(this.posX + fuzzy, this.posY + fuzzy, ViewDirectionLeftByArc, ViewDirectionRightByArc);

                if (v.Distance < 0.1)
                    v.ViewInfo.IsInView = false;

                UpdateSpriteRenderInfo(v);

                if (v.ViewInfo.IsInView)
                {
                    if (v.LastRenderedClip != null)
                        if (v.LastRenderedClip.width > 0)
                            a.Add(v);
                }


            }

            return a;
        }