Class TextStlFacetDefinitionReader

java.lang.Object
org.apache.commons.geometry.io.euclidean.threed.stl.TextStlFacetDefinitionReader
All Implemented Interfaces:
AutoCloseable, FacetDefinitionReader

public class TextStlFacetDefinitionReader extends Object implements FacetDefinitionReader
FacetDefinitionReader for reading the text (i.e., "ASCII") version of the STL file format.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private boolean
    Flag indicating if the end of a solid definition was detected.
    private boolean
    Flag indicating if the start of a solid definition was detected.
    Text parser.
    private Reader
    Underlying reader instance.
    private String
    The name of the solid being read.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Construct a new instance for reading text STL content from the given reader.
  • Method Summary

    Modifier and Type
    Method
    Description
    private void
    Begin reading an STL solid definition.
    void
    Close this instance and release all associated resources.
    private void
    Ensure that an STL solid definition is in the process of being read.
    Get the name of the STL solid being read or null if no name was specified.
    private void
    Read the next word from the content and match it against the given keyword.
    private void
    Read the next word from the content, discarding preceding whitespace.
    private double
    Read a double value from the input.
    Return the next facet definition from the input source or null if no more facets are available.
    Internal method to read a single facet from the STL content.
    private Vector3D
    Read a vector from the input.
    private static String
    Return a trimmed version of the given string or null if the string contains only whitespace.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • reader

      private Reader reader
      Underlying reader instance.
    • parser

      private SimpleTextParser parser
      Text parser.
    • foundSolidStart

      private boolean foundSolidStart
      Flag indicating if the start of a solid definition was detected.
    • foundSolidEnd

      private boolean foundSolidEnd
      Flag indicating if the end of a solid definition was detected.
    • solidName

      private String solidName
      The name of the solid being read.
  • Constructor Details

    • TextStlFacetDefinitionReader

      public TextStlFacetDefinitionReader(Reader reader)
      Construct a new instance for reading text STL content from the given reader.
      Parameters:
      reader - reader to read characters from
  • Method Details

    • getSolidName

      public String getSolidName()
      Get the name of the STL solid being read or null if no name was specified.
      Returns:
      the name of the STL solid being read or null if no name was specified
      Throws:
      IllegalStateException - if a data format error occurs
      UncheckedIOException - if an I/O error occurs
    • readFacet

      public FacetDefinition readFacet()
      Return the next facet definition from the input source or null if no more facets are available.
      Specified by:
      readFacet in interface FacetDefinitionReader
      Returns:
      the next facet definition or null if no more facets are available
    • close

      public void close()
      Close this instance and release all associated resources.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface FacetDefinitionReader
    • readFacetInternal

      private FacetDefinition readFacetInternal()
      Internal method to read a single facet from the STL content.
      Returns:
      next facet definition
      Throws:
      IllegalStateException - if a data format error occurs
      UncheckedIOException - if an I/O error occurs
    • ensureSolidStarted

      private void ensureSolidStarted()
      Ensure that an STL solid definition is in the process of being read. If not, the beginning of a the definition is attempted to be read from the input.
      Throws:
      IllegalStateException - if a data format error occurs
      UncheckedIOException - if an I/O error occurs
    • beginSolid

      private void beginSolid()
      Begin reading an STL solid definition. The "solid" keyword is read along with the name of the solid.
      Throws:
      IllegalStateException - if a data format error occurs
      UncheckedIOException - if an I/O error occurs
    • nextWord

      private void nextWord()
      Read the next word from the content, discarding preceding whitespace.
      Throws:
      IllegalStateException - if a data format error occurs
      UncheckedIOException - if an I/O error occurs
    • matchKeyword

      private void matchKeyword(String keyword)
      Read the next word from the content and match it against the given keyword.
      Parameters:
      keyword - keyword to match against
      Throws:
      IllegalStateException - if the read content does not match the given keyword
      UncheckedIOException - if an I/O error occurs or
    • readVector

      private Vector3D readVector()
      Read a vector from the input.
      Returns:
      the vector read from the input
      Throws:
      IllegalStateException - if a data format error occurs
      UncheckedIOException - if an I/O error occurs
    • readDouble

      private double readDouble()
      Read a double value from the input.
      Returns:
      double value read from the input
      Throws:
      IllegalStateException - if a data format error occurs
      UncheckedIOException - if an I/O error occurs
    • trimmedOrNull

      private static String trimmedOrNull(String str)
      Return a trimmed version of the given string or null if the string contains only whitespace.
      Parameters:
      str - input stream
      Returns:
      a trimmed version of the given string or null if the string contains only whitespace