public bool Combine(IRenderer renderer)
        {
            if (this == renderer)
            {
                return(false);
            }

            if (renderer is ScaleDependentRenderer)
            {
                ScaleDependentRenderer cand = (ScaleDependentRenderer)renderer;

                foreach (ScaleRenderer sRenderer in this.Renderers)
                {
                    for (int i = 0; i < cand.Renderers.Count; i++)
                    {
                        if (sRenderer.Combine(cand.Renderers[i]))
                        {
                            cand.Renderers.RemoveAt(i);
                            i--;
                        }
                    }
                }

                return(cand.Renderers.Count == 0);
            }

            return(false);
        }
        public object Clone()
        {
            ScaleDependentRenderer scaleDependentRenderer = new ScaleDependentRenderer();

            scaleDependentRenderer._useRefScale = _useRefScale;
            foreach (IFeatureRenderer renderer in this.Renderers)
            {
                scaleDependentRenderer.Renderers.Add(renderer.Clone() as IFeatureRenderer);
            }

            return(scaleDependentRenderer);
        }
        public object Clone(CloneOptions options)
        {
            ScaleDependentRenderer scaledependentRenderer = new ScaleDependentRenderer();

            foreach (IFeatureRenderer renderer in _renderers)
            {
                if (renderer == null)
                {
                    continue;
                }
                scaledependentRenderer._renderers.Add(renderer.Clone(options) as IFeatureRenderer);
            }

            scaledependentRenderer.UseReferenceScale = _useRefScale;
            return(scaledependentRenderer);
        }