예제 #1
0
        private void RenderFeatures(Graphics g, QuickTransformArgs quickTransfrom)
        {
            IFeatureClass fetclass = _class as IFeatureClass;

            IGrid[] grids = fetclass.Grids;
            if (grids == null || grids.Length == 0)
            {
                return;
            }
            try
            {
                fetclass.RepeatFeatureRecorder.BeginRender();
                int               gridCount        = grids.Length;
                Envelope          currentExtent    = _environment.ExtentOfProjectionCoord;
                Grid              gd               = null;
                IOutsideIndicator outsideIndicator = null;
                //
                for (int i = 0; i < gridCount; i++)
                {
                    gd = grids[i] as Grid;
                    if (gd.IsEmpty())
                    {
                        continue;
                    }
                    outsideIndicator = (gd as ISupportOutsideIndicator).OutsideIndicator;
                    //test,draw grids
                    //DrawTestGrid(gd, g, quickTransfrom);
                    //

                    /* 为了测试其他投影矢量绘制注释掉
                     * outsideIndicator.SetOutside(!currentExtent.IsInteractived(gd.GridEnvelope,ref gd._isfullInternal));
                     * if (outsideIndicator.IsOutside)
                     *  continue;
                     */
                    outsideIndicator.SetOutside(!currentExtent.IsInteractived(gd.GridEnvelope, ref gd._isfullInternal));
                    if (outsideIndicator.IsOutside)
                    {
                        continue;
                    }
                    _featureRender.Render(_enabledDisplayLevel, quickTransfrom, gd, g, currentExtent, fetclass.RepeatFeatureRecorder);
                }
            }
            finally
            {
                fetclass.RepeatFeatureRecorder.EndRender();
            }
        }