示例#1
0
        private void AtomAdded(Atom atom)
        {
            if (!chemicalVisuals.ContainsKey(atom)) //it's not already in the list
            {
                if (atom.Element is FunctionalGroup)
                {
                    chemicalVisuals[atom] = new FunctionalGroupVisual(atom, ShowAtomsInColour);
                }
                else
                {
                    chemicalVisuals[atom] = new AtomVisual(atom, ShowAtomsInColour, ShowImplicitHydrogens, ShowAllCarbonAtoms);
                }
            }

            var cv = chemicalVisuals[atom];

            if (cv is FunctionalGroupVisual fgv)
            {
                if (fgv.RefCount == 0) // it hasn't been added before
                {
                    fgv.ChemicalVisuals = chemicalVisuals;

                    fgv.BackgroundColor = Background;
                    fgv.SymbolSize      = ViewModel.SymbolSize;
                    fgv.SubscriptSize   = ViewModel.SymbolSize * ViewModel.ScriptScalingFactor;
                    fgv.SuperscriptSize = ViewModel.SymbolSize * ViewModel.ScriptScalingFactor;
                    fgv.Standoff        = ViewModel.Standoff;
                    fgv.Render();

                    AddVisual(fgv);
                }

                fgv.RefCount++;
            }
            else if (cv is AtomVisual av)
            {
                if (av.RefCount == 0) // it hasn't been added before
                {
                    av.ChemicalVisuals    = chemicalVisuals;
                    av.SymbolSize         = ViewModel.SymbolSize;
                    av.SubscriptSize      = ViewModel.SymbolSize * ViewModel.ScriptScalingFactor;
                    av.SuperscriptSize    = ViewModel.SymbolSize * ViewModel.ScriptScalingFactor;
                    av.BackgroundColor    = Background;
                    av.DisplayOverbonding = DisplayOverbondedAtoms;
                    av.Render();

                    AddVisual(av);
                }

                av.RefCount++;
            }
        }
        private void AtomAdded(Atom atom)
        {
            if (!chemicalVisuals.ContainsKey(atom)) //it's not already in the list
            {
                if (atom.Element is FunctionalGroup fg)
                {
                    chemicalVisuals[atom] = new FunctionalGroupVisual(atom);
                }
                else
                {
                    chemicalVisuals[atom] = new AtomVisual(atom);
                }
            }

            var cv = chemicalVisuals[atom];

            if (cv is FunctionalGroupVisual fgv)
            {
                if (fgv.RefCount == 0) // it hasn't been added before
                {
                    fgv.ChemicalVisuals = chemicalVisuals;

                    fgv.BackgroundColor = Background;

                    fgv.Render();

                    AddVisual(fgv);
                }

                fgv.RefCount++;
            }
            else if (cv is AtomVisual av)
            {
                if (av.RefCount == 0) // it hasn't been added before
                {
                    av.ChemicalVisuals = chemicalVisuals;

                    av.BackgroundColor = Background;

                    av.Render();

                    AddVisual(av);
                }

                av.RefCount++;
            }
        }