Class ObjBoundaryWriteHandler3D

java.lang.Object
org.apache.commons.geometry.io.euclidean.threed.AbstractBoundaryWriteHandler3D
org.apache.commons.geometry.io.euclidean.threed.obj.ObjBoundaryWriteHandler3D
All Implemented Interfaces:
BoundaryWriteHandler<PlaneConvexSubset,BoundarySource3D>, BoundaryWriteHandler3D

public class ObjBoundaryWriteHandler3D extends AbstractBoundaryWriteHandler3D
BoundaryWriteHandler3D implementation for writing OBJ content. Output is written using the UTF-8 charset by default.
  • Field Details

    • DEFAULT_LINE_SEPARATOR

      private static final String DEFAULT_LINE_SEPARATOR
      The default line separator value.
      See Also:
    • DEFAULT_MESH_BUFFER_BATCH_SIZE

      private static final int DEFAULT_MESH_BUFFER_BATCH_SIZE
      Default mesh buffer batch size.
      See Also:
    • defaultCharset

      private Charset defaultCharset
      Charset used for text output.
    • lineSeparator

      private String lineSeparator
      Line separator string.
    • doubleFormat

      private DoubleFunction<String> doubleFormat
      Double format function.
    • meshBufferBatchSize

      private int meshBufferBatchSize
      Batch size used for mesh buffer creation.
  • Constructor Details

    • ObjBoundaryWriteHandler3D

      public ObjBoundaryWriteHandler3D()
  • Method Details

    • getFormat

      public GeometryFormat getFormat()
      Get the data format supported by this handler.
      Returns:
      data format supported by this handler
    • getDefaultCharset

      public Charset getDefaultCharset()
      Get the text output default charset, used if the output does not specify a charset.
      Returns:
      text output default charset
    • setDefaultCharset

      public void setDefaultCharset(Charset charset)
      Set the text output default charset, used if the output does not specify a charset.
      Parameters:
      charset - text output default charset
    • getLineSeparator

      public String getLineSeparator()
      Get the line separator. This value defaults to "\n".
      Returns:
      the current line separator
    • setLineSeparator

      public void setLineSeparator(String lineSeparator)
      Set the line separator.
      Parameters:
      lineSeparator - the line separator to use
    • getDoubleFormat

      public DoubleFunction<String> getDoubleFormat()
      Get the function used to convert double values to strings.
      Returns:
      double format function
    • setDoubleFormat

      public void setDoubleFormat(DoubleFunction<String> doubleFormat)
      Set the function used to convert double values to strings. The given function must be thread-safe if this handler is to be used in a multi-threaded context.
      Parameters:
      doubleFormat - double format function
    • getMeshBufferBatchSize

      public int getMeshBufferBatchSize()
      Get the batch size when generating OBJ mesh content from facet sequences. Larger batch sizes allow for reuse of vertex definitions but at the cost of more memory usage. The buffer size is unlimited if set to -1. Default value is -1.
      Returns:
      mesh buffer batch size
      See Also:
    • setMeshBufferBatchSize

      public void setMeshBufferBatchSize(int batchSize)
      Set the batch size when generating OBJ mesh content from facet sequences. Larger batch sizes allow for reuse of vertex definitions but at the cost of more memory usage. Set to -1 to allow unlimited buffer size. Default value is -1.
      Parameters:
      batchSize - mesh buffer batch size; set to -1 to allow unlimited buffer sizes
      See Also:
    • write

      public void write(BoundarySource3D src, GeometryOutput out)
      Write all boundaries from src to the given output, using the data format for the instance.
      Specified by:
      write in interface BoundaryWriteHandler<PlaneConvexSubset,BoundarySource3D>
      Overrides:
      write in class AbstractBoundaryWriteHandler3D
      Parameters:
      src - boundary source
      out - output to write to
    • write

      public void write(Stream<? extends PlaneConvexSubset> boundaries, GeometryOutput out)
      Write all boundaries in the stream to the given output using the data format supported by this instance. The stream passed as an argument is not closed, meaning that callers are responsible for closing the stream if necessary (for example, if the stream fetches data from the file system).
      Parameters:
      boundaries - stream containing boundaries to write
      out - output to write to
    • writeFacets

      public void writeFacets(Stream<? extends FacetDefinition> facets, GeometryOutput out)
      Write all facets in the stream to the output using the data format supported by this instance. The stream passed as an argument is not closed, meaning that callers are responsible for closing the stream if necessary (for example, if the stream fetches data from the file system).
      Parameters:
      facets - stream containing facets to write
      out - output to write to
    • createWriter

      private ObjWriter createWriter(GeometryOutput out)
      Construct a new, configured ObjWriter instance for writing content to the given output stream.
      Parameters:
      out - output stream to write to
      Returns:
      new OBJWriter for writing content to the given output stream
      Throws:
      UncheckedIOException - if an I/O error occurs