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
BoundaryWriteHandler3D
implementation for writing OBJ content. Output is written using the UTF-8 charset by default.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final StringThe default line separator value.private static final intDefault mesh buffer batch size.private CharsetCharset used for text output.private DoubleFunction<String> Double format function.private StringLine separator string.private intBatch size used for mesh buffer creation. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate ObjWriterConstruct a new, configuredObjWriterinstance for writing content to the given output stream.Get the text output default charset, used if the output does not specify a charset.Get the function used to convert double values to strings.Get thedata formatsupported by this handler.Get the line separator.intGet the batch size when generating OBJ mesh content from facet sequences.voidsetDefaultCharset(Charset charset) Set the text output default charset, used if the output does not specify a charset.voidsetDoubleFormat(DoubleFunction<String> doubleFormat) Set the function used to convert double values to strings.voidsetLineSeparator(String lineSeparator) Set the line separator.voidsetMeshBufferBatchSize(int batchSize) Set the batch size when generating OBJ mesh content from facet sequences.voidwrite(Stream<? extends PlaneConvexSubset> boundaries, GeometryOutput out) Write all boundaries in the stream to the given output using the data format supported by this instance.voidwrite(BoundarySource3D src, GeometryOutput out) Write all boundaries fromsrcto the given output, using the data format for the instance.voidwriteFacets(Stream<? extends FacetDefinition> facets, GeometryOutput out) Write allfacetsin the stream to the output using the data format supported by this instance.Methods inherited from class AbstractBoundaryWriteHandler3D
writeFacets
-
Field Details
-
DEFAULT_LINE_SEPARATOR
-
DEFAULT_MESH_BUFFER_BATCH_SIZE
private static final int DEFAULT_MESH_BUFFER_BATCH_SIZEDefault mesh buffer batch size.- See Also:
-
defaultCharset
Charset used for text output. -
lineSeparator
Line separator string. -
doubleFormat
Double format function. -
meshBufferBatchSize
private int meshBufferBatchSizeBatch size used for mesh buffer creation.
-
-
Constructor Details
-
ObjBoundaryWriteHandler3D
public ObjBoundaryWriteHandler3D()
-
-
Method Details
-
getFormat
Get thedata formatsupported by this handler.- Returns:
- data format supported by this handler
-
getDefaultCharset
Get the text output default charset, used if the output does not specify a charset.- Returns:
- text output default charset
-
setDefaultCharset
Set the text output default charset, used if the output does not specify a charset.- Parameters:
charset- text output default charset
-
getLineSeparator
-
setLineSeparator
Set the line separator.- Parameters:
lineSeparator- the line separator to use
-
getDoubleFormat
Get the function used to convert double values to strings.- Returns:
- double format function
-
setDoubleFormat
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-1to allow unlimited buffer size. Default value is -1.- Parameters:
batchSize- mesh buffer batch size; set to-1to allow unlimited buffer sizes- See Also:
-
write
Write all boundaries fromsrcto the given output, using the data format for the instance.- Specified by:
writein interfaceBoundaryWriteHandler<PlaneConvexSubset, BoundarySource3D>- Overrides:
writein classAbstractBoundaryWriteHandler3D- Parameters:
src- boundary sourceout- output to write to
-
write
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 writeout- output to write to
-
writeFacets
Write allfacetsin 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 writeout- output to write to
-
createWriter
Construct a new, configuredObjWriterinstance for writing content to the given output stream.- Parameters:
out- output stream to write to- Returns:
- new
OBJWriterfor writing content to the given output stream - Throws:
UncheckedIOException- if an I/O error occurs
-