code: function (options, required) {
      if (options.alignX === 'left') {
        options.alignX = 0.0;
      }
      else if (options.alignX === 'center') {
        options.alignX = 0.5;
      }
      else if (options.alignX === 'right') {
        options.alignX = 1.0;
      }
      else {
        if (options.alignX !== undefined || required) {
          options.alignX = parseFloat(options.alignX);
          if (isNaN(options.alignX)) {
            options.alignX = 0.5;
          }
        }
      }
  
      if (options.alignY === 'top') {
        options.alignY = 0.0;
      }
      else if (options.alignY === 'center') {
        options.alignY = 0.5;
      }
      else if (options.alignY === 'bottom') {
        options.alignY = 1.0;
      }
      else {
        if (options.alignX !== undefined || required) {
          options.alignY = parseFloat(options.alignY);
          if (isNaN(options.alignY)) {
            options.alignY = 0.5;
          }
        }
      }
  
      return options;
    }
docs: /* Process align options