code: @Override
      public IRenderingElement generate(IAtomContainer container, IAtom atom, RendererModel model) {
          boolean drawNumbers = false;
          if (model.hasParameter(WillDrawAtomNumbers.class)) {
              drawNumbers = model.getParameter(WillDrawAtomNumbers.class).getValue();
          }
          if (!hasCoordinates(atom) || invisibleHydrogen(atom, model)
                  || (invisibleCarbon(atom, container, model) && !drawNumbers)) {
              return null;
          } else if (model.getParameter(CompactAtom.class).getValue()) {
              return this.generateCompactElement(atom, model);
          } else {
              String text;
              if (atom instanceof IPseudoAtom) {
                  text = ((IPseudoAtom) atom).getLabel();
              } else if (invisibleCarbon(atom, container, model) && drawNumbers) {
                  text = String.valueOf(container.indexOf(atom) + 1);
              } else {
                  text = atom.getSymbol();
              }
              Point2d point = atom.getPoint2d();
              Color ccolor = getAtomColor(atom, model);
              TextGroupElement textGroup = new TextGroupElement(point.x, point.y, text, ccolor);
              decorate(textGroup, container, atom, model);
              return textGroup;
          }
      }
docs: {@inheritDoc}