Class ObjBoundaryWriteHandler3D

    • Field Detail

      • DEFAULT_LINE_SEPARATOR

        private static final java.lang.String DEFAULT_LINE_SEPARATOR
        The default line separator value.
        See Also:
        Constant Field Values
      • DEFAULT_MESH_BUFFER_BATCH_SIZE

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

        private java.nio.charset.Charset defaultCharset
        Charset used for text output.
      • lineSeparator

        private java.lang.String lineSeparator
        Line separator string.
      • doubleFormat

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

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

      • ObjBoundaryWriteHandler3D

        public ObjBoundaryWriteHandler3D()
    • Method Detail

      • getFormat

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

        public java.nio.charset.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​(java.nio.charset.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 java.lang.String getLineSeparator()
        Get the line separator. This value defaults to "\n".
        Returns:
        the current line separator
      • setLineSeparator

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

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

        public void setDoubleFormat​(java.util.function.DoubleFunction<java.lang.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:
        ObjWriter.meshBuffer(int)
      • 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:
        ObjWriter.meshBuffer(int)
      • write

        public void write​(java.util.stream.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​(java.util.stream.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:
        java.io.UncheckedIOException - if an I/O error occurs