code: public IRenderingElement generate(IAtomContainer atomContainer, IAtom atom, RendererModel model) {
          if (!canDraw(atom, atomContainer, model)) {
              return null;
          } else if ((Boolean) model.get(CompactAtom.class)) {
              return this.generateCompactElement(atom, model);
          } else {
              int alignment = 0;
              if (atom.getSymbol().equals("C")) {
                  alignment = GeometryUtil.getBestAlignmentForLabel(atomContainer, atom);
              } else {
                  alignment = GeometryUtil.getBestAlignmentForLabelXY(atomContainer, atom);
              }
  
              return generateElement(atom, alignment, model);
          }
      }
docs: Generate the rendering element(s) for a particular atom.
  
  @param atomContainer the atom container that the atom is from
  @param atom the atom to generate the rendering element for
  @param model the renderer model
  @return a rendering element, or group of elements