Package geomss.geom.reader
Class STLGeomReader
- java.lang.Object
-
- geomss.geom.reader.AbstractGeomReader
-
- geomss.geom.reader.STLGeomReader
-
- All Implemented Interfaces:
GeomReader
,java.lang.Comparable
public class STLGeomReader extends AbstractGeomReader
AGeomReader
for reading and writing geometry from/to a binary STL (STereoLithography) formatted geometry file.Modified by: Joseph A. Huwaldt
- Version:
- September 9, 2016
- Author:
- Joseph A. Huwaldt, Date: September 4, 2015
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
EXTENSION
-
Fields inherited from interface geomss.geom.reader.GeomReader
MAYBE, NO, YES
-
-
Constructor Summary
Constructors Constructor Description STLGeomReader()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
canReadData(java.io.File inputFile)
Method that determines if this reader can read geometry from the specified input file.boolean
canWriteData()
Returns true.java.lang.String
getExtension()
Returns the preferred file extension (not including the ".") for files of this GeomReader's type.boolean
isUnitAware()
This method always returnsfalse
as STL files do not encode the units that are being used.TriangleList
read(java.io.File inputFile)
Reads in a binary STL formatted geometry file from the specified input file and returns aTriangleList
object that contains the triangle geometry from the file.java.lang.String
toString()
Returns a string representation of the object.void
write(java.io.File outputFile, GeometryList geometry)
Writes out an binary STL formatted geometry file for the geometry contained in the supplied geometry list.-
Methods inherited from class geomss.geom.reader.AbstractGeomReader
compareTo, getWarnings, setFileUnits
-
-
-
-
Field Detail
-
EXTENSION
public static final java.lang.String EXTENSION
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
STLGeomReader
public STLGeomReader()
-
-
Method Detail
-
toString
public java.lang.String toString()
Returns a string representation of the object. This will return a brief description of the format read by this reader.- Overrides:
toString
in classjava.lang.Object
- Returns:
- A brief description of the format read by this reader.
-
getExtension
public java.lang.String getExtension()
Returns the preferred file extension (not including the ".") for files of this GeomReader's type.- Returns:
- The preferred file extension for files of this readers type.
-
canReadData
public int canReadData(java.io.File inputFile) throws java.io.IOException
Method that determines if this reader can read geometry from the specified input file.- Specified by:
canReadData
in interfaceGeomReader
- Overrides:
canReadData
in classAbstractGeomReader
- Parameters:
inputFile
- The input file containing the geometry to be read in.- Returns:
- GeomReader.NO if the file format is not recognized by this reader. GeomReader.YES if the file has the extension ".geo" or ".mk5". GeomReader.MAYBE if the file has the extension ".lib".
- Throws:
java.io.IOException
- If there is a problem reading from the specified file.
-
canWriteData
public boolean canWriteData()
Returns true. This class can write triangle and quad-paneled point geometry data to a Binary STL formatted file.- Specified by:
canWriteData
in interfaceGeomReader
- Overrides:
canWriteData
in classAbstractGeomReader
- Returns:
- this method always returns true
-
read
public TriangleList read(java.io.File inputFile) throws java.io.IOException
Reads in a binary STL formatted geometry file from the specified input file and returns aTriangleList
object that contains the triangle geometry from the file.WARNING: This file format is not unit aware. You must set the units to be used by calling "setFileUnits()" before calling this method!
- Specified by:
read
in interfaceGeomReader
- Overrides:
read
in classAbstractGeomReader
- Parameters:
inputFile
- The input file containing the geometry to be read in. May not be null.- Returns:
- A
TriangleList
object containing the geometry read in from the file. If the file has no geometry in it, then this list will have no triangles in it (will have a size() of zero). - Throws:
java.io.IOException
- If there is a problem reading the specified file.- See Also:
AbstractGeomReader.setFileUnits(javax.measure.unit.Unit)
-
write
public void write(java.io.File outputFile, GeometryList geometry) throws java.io.IOException
Writes out an binary STL formatted geometry file for the geometry contained in the supplied geometry list. If the list contains triangles or lists of triangles, they are all written out to the file directly. If the list contains array based paneled geometry such as a PointVehicle or PointComponent, then all the arrays in these objects are converted into triangles and those triangles are written out to the file. If no triangle or point array based geometry can be found in the geometry list, then nothing will happen (the output file will not be created).The 80 byte header of the STL file is not used and is filled with zeros.
WARNING: This format is not unit aware. The geometry will be written out in whatever its current units are! Make sure to convert to the desired units for the file before calling this method.
- Specified by:
write
in interfaceGeomReader
- Overrides:
write
in classAbstractGeomReader
- Parameters:
outputFile
- The output File to which the geometry is to be written. May not be null.geometry
- The list of triangle or point array geometry to be written out. May not be null.- Throws:
java.io.IOException
- If there is a problem writing to the specified file.
-
isUnitAware
public boolean isUnitAware()
This method always returnsfalse
as STL files do not encode the units that are being used. You must callsetFileUnits
to set the units being used before reading from a file of this format.- Returns:
- This implementation always returns false.
- See Also:
AbstractGeomReader.setFileUnits(javax.measure.unit.Unit)
-
-