class_docstr: Class that generates one or more sprite atlases.
class_docstr_tok: ["Class","that","generates","one","or","more","sprite","atlases","."]
docstr: Generate a default square size for the atlas if input size is not
  specified. Note that square means that it attempts to have the same number
  of images in the height and the width, which is NOT the same as having a
  square size in terms of number of pixels.
  
  Returns:
    A tuple representing the number of images per side.
docstr_tok: ["Generate","a","default","square","size","for","the","atlas","if","input","size","is","not","specified",".","Note","that","square","means","that","it","attempts","to","have","the","same","number","of","images","in","the","height","and","the","width",",","which","is","NOT","the","same","as","having","a","square","size","in","terms","of","number","of","pixels",".","Returns",":","A","tuple","representing","the","number","of","images","per","side","."]
code: def _generate_default_atlas_size(self):
      """Generate a default square size for the atlas if input size is not
      specified. Note that square means that it attempts to have the same number
      of images in the height and the width, which is NOT the same as having a
      square size in terms of number of pixels.
  
      Returns:
        A tuple representing the number of images per side.
      """
      side = math.ceil(math.sqrt(self._num_input_images))
      return side, side
  
imports: import math
  import os
  from absl import logging
  from PIL import Image
label_desc: Use image node_id 6 for calling the SpriteAtlasGenerator obj's underlying member method code with example usage: obj._generate_default_atlas_size() and returns: side,  side