- All Implemented Interfaces:
GraphicsCreator,Model3D.ImageData
- Enclosing class:
- Model3D
The constructors are the same as those for the BufferedImage class,
with there additional constructors that can use a
GraphCreator,
Graph or
OSGraphicsOps instead of an internal
buffered image. The class Animation2D
implements GraphCreator, whereas the
classes OutputStreamGraphics and
PanelGraphics implement
OSGraphicsOps.
After creating an instance of this class, one will configure
parameters for rendering:
please see Model3D.ImageData for details. For the simplest
case, one will use
Model3D.ImageData.setCoordRotation(double,double,double)
and one of the Model3D methods
Model3D.setImageParameters(Model3D.ImageData),
Model3D.setImageParameters(Model3D.ImageData,double),
Model3D.setImageParameters(Model3D.ImageData,double,double),
Model3D.setImageParameters(Model3D.ImageData,double,double,double),
Model3D.setImageParameters(Model3D.ImageData,double,double,double,double), or
Model3D.setImageParameters(Model3D.ImageData,double,double,double,double,boolean)
to complete the configuration.
To render the image, one will use the Model3D method
Model3D.render(Model3D.Image) (several variants of this
method are available for more complex cases such as rendering
images from multiple models).
Finally, to write the image to a file or stream, one will
use the method write(String,String),
write(String, File),
write(String, FileAccessor),
write(String, OutputStream), or
write().
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionImage(int width, int height, int imageType) Constructor.Image(int width, int height, int imageType, IndexColorModel cm) Constructor given an index color model.Image(ColorModel cm, WritableRaster raster, boolean isRasterPremultiplied, Hashtable<?, ?> properties) Constructor given a color model.Image(OSGraphicsOps osg) ` Constructor specifying an OSGraphicsOps.Constructor given a Graph.Image(GraphCreator gc2d) Constructor given a graph creator. -
Method Summary
Modifier and TypeMethodDescriptionCreate a graphics context.Get the color for the the side of a triangle that should not be visible due to being on the inside of a closed manifold.doubleGet the color factor.Get the default backside color to use for line segments associated with triangles added for rendering.Get the color to use for line segments explicitly added or associated with triangles added for rendering.doublegetDelta()Get the minimum triangle size for rendering.Get the color used to indicate the edges of a trianglefloatGet the height of an image.floatGet the width of an image .intGet the height of an image as an integer.Get the corresponding ImageDataImpl.doubleGet the light-source parameter phi.doubleGet the light-source parameter theta.doubleGet the normal factor After a coordinate transformation, the normal factor is used to reduce the color factor towards 0.0 when a surface segment' is not aligned with the Z axis.doublegetPhi()Get the Eulerian angle phi for a coordinate rotation.doublegetPsi()Get the Eulerian angle psi for a coordinate rotation.doubleGet the X coordinate of the origin/target point for a coordinate rotation.doubleGet the Y coordinate of the origin/target point for a coordinate rotation.doubleGet the Z coordinate of the origin/target point for a coordinate rotation.doubleSet the scale factor.doublegetTheta()Get the Eulerian angle theta for a coordinate rotation.intgetWidth()Get the width of an image as an integer.floatGet the X coordinate of the origin.doubleGet the coordinate translation in the X direction that will be applied after other coordinate transformations are completed.floatGet the Y coordinate of the origin Note that user space follows the standard Java convention in which increasing X values go 'right' on an image and increasing Y values do 'down'.doubleGet the coordinate translation in the Y direction that will be applied after other coordinate transformations are completed.booleanDetermine if the transformed origin for (0,0,0) will be moved to the coordinate origin after the rotation is completed.voidreset()Reset to default values.voidSet the color for the side of a triangle that should not be visible due to being on the inside of a closed manifold.voidsetColorFactor(double factor) Set the color factor.voidsetCoordRotation(double phi, double theta, double psi) Rotate the Model3D coordinates.voidSet the default backside color to use for line segments associated with triangles added for rendering.voidSet the color to use for line segments explicitly added or associated with triangles added for rendering.voidsetDelta(double delta) Set the minimum triangle size for rendering.voidSet the color to use to use to draw the edges of triangles.voidsetLightSource(double phi, double theta) Sets the direction to a light source.voidsetNormalFactor(double factor) Set the normal factor.voidSet the origin to a default value.voidsetOrigin(double offset) Set the origin given a double-precision offset.voidsetOrigin(double x, double y) Set the origin give double-precision coordinates The origin is the point on the image that will correspond to points in the model for which x = 0.0 and y = 0.0.voidsetOrigin(float offset) Set the origin given an offset.voidsetOrigin(float x, float y) Set the origin given floating-point coordinates.voidsetOrigin(int offset) Set the origin given an integer offset.voidsetOrigin(int x, int y) Set the origin given integer coordinates.voidsetOriginByFraction(double offset) Set the origin given a double-precision fractional offset.voidsetOriginByFraction(float offset) Set the origin given a single-precision fractional offset.voidsetRotationOrigin(double x, double y, double z) Move the rotation origin for a coordinate rotation.voidsetRotationOrigin(double x, double y, double z, boolean move) Move the rotation origin for a coordinate rotation with options.voidsetScaleFactor(double scaleFactor) Set the scale factor.voidsetTranslation(double x, double y) Specify translation after coordinate changes.voidwrite()Write the image to its OutputStreamGraphics.voidWrite the image to a file.voidwrite(String type, OutputStream os) Write the image to an output stream.voidWrite the image to a file given a file name.voidwrite(String type, FileAccessor fa) Write the image to a file provided by a file accessor.
-
Constructor Details
-
Image
public Image(ColorModel cm, WritableRaster raster, boolean isRasterPremultiplied, Hashtable<?, ?> properties) Constructor given a color model.- Parameters:
cm- the color model for the imageraster- the Raster for the data representing the imageisRasterPremultiplied- if true, the data in the raster has been premultiplied with alphaproperties- a Hashtable of String/Object pairs- See Also:
-
Image
public Image(int width, int height, int imageType) Constructor. The predefined image types are the same as for BufferedImage- Parameters:
width- the width of the imageheight- the height of the imageimageType- the image type- See Also:
-
Image
Constructor given an index color model.- Parameters:
width- the width of the imageheight- the height of the imageimageType- the image type, restricted to either TYPE_BYTE_BINARY or TYPE_BYTE_INDEXEDcm- the IndexColorModel to use- See Also:
-
Image
` Constructor specifying an OSGraphicsOps.- Parameters:
osg- the OSGraphicsOps to be used to create an image
-
Image
Constructor given a graph creator. The interfaceGraphCreatoris implemented byAnimation2D, which may construct its graph after this Constructor is called.- Parameters:
gc2d- the object that will create a graph used by this object to provide a buffered image or graphics output stream
-
Image
Constructor given a Graph. The image created will share the graph's buffered image or output-stream graphics.- Parameters:
graph- an instance of Graph
-
-
Method Details
-
createGraphics
Description copied from interface:GraphicsCreatorCreate a graphics context.- Specified by:
createGraphicsin interfaceGraphicsCreator- Returns:
- the graphics context
-
getImageData
Description copied from interface:Model3D.ImageDataGet the corresponding ImageDataImpl.- Specified by:
getImageDatain interfaceModel3D.ImageData- Returns:
- the corresponding ImageDataImpl
-
getWidth
public int getWidth()Description copied from interface:Model3D.ImageDataGet the width of an image as an integer.- Specified by:
getWidthin interfaceModel3D.ImageData- Returns:
- the width of the image
-
getHeight
public int getHeight()Description copied from interface:Model3D.ImageDataGet the height of an image as an integer.- Specified by:
getHeightin interfaceModel3D.ImageData- Returns:
- the height of the image
-
getFloatWidth
public float getFloatWidth()Description copied from interface:Model3D.ImageDataGet the width of an image .- Specified by:
getFloatWidthin interfaceModel3D.ImageData- Returns:
- the width in image user-space coordinates
-
getFloatHeight
public float getFloatHeight()Description copied from interface:Model3D.ImageDataGet the height of an image.- Specified by:
getFloatHeightin interfaceModel3D.ImageData- Returns:
- the height in user-space coordinates
-
getScaleFactor
public double getScaleFactor()Description copied from interface:Model3D.ImageDataSet the scale factor. A rendered model will be scaled by this amount. When the scale factor is 1.0, a unit distance in the model is a unit distance in the image's user space (e.g. 1/72 of an inch on a display). The scale factor is applied after any rotation or translation. The coordinate whose post-rotation and post-translation value is (0.0, 0.0, 0.0) will appear at the image's origin after scaling.- Specified by:
getScaleFactorin interfaceModel3D.ImageData- Returns:
- the scale factor
-
setScaleFactor
public void setScaleFactor(double scaleFactor) Description copied from interface:Model3D.ImageDataSet the scale factor. A rendered model will be scaled by this amount. When the scale factor is 1.0, a unit distance in the model is a unit distance in the image's user space (e.g. 1/72 of an inch on a display). The scale factor is applied after any rotation or translation. The coordinate whose post-rotation and post-translation value is (0.0, 0.0, 0.0) will appear at the image's origin after scaling.- Specified by:
setScaleFactorin interfaceModel3D.ImageData- Parameters:
scaleFactor- the scale factor
-
getXOrigin
public float getXOrigin()Description copied from interface:Model3D.ImageDataGet the X coordinate of the origin. The origin is the point on the image that will correspond to points in the model for which x = 0.0 and y = 0.0. Note that user space follows the standard Java convention in which increasing X values go 'right' on an image and increasing Y values do 'down'.- Specified by:
getXOriginin interfaceModel3D.ImageData- Returns:
- the X coordinate of the origin in the image's user space
-
getYOrigin
public float getYOrigin()Description copied from interface:Model3D.ImageDataGet the Y coordinate of the origin Note that user space follows the standard Java convention in which increasing X values go 'right' on an image and increasing Y values do 'down'.- Specified by:
getYOriginin interfaceModel3D.ImageData- Returns:
- the Y coordinate of the origin in the image's user space
-
setOrigin
public void setOrigin(int x, int y) Description copied from interface:Model3D.ImageDataSet the origin given integer coordinates. The origin is the point on the image that will correspond to points in the model for which x = 0.0 and y = 0.0. Note that user space follows the standard Java convention in which increasing X values go 'right' on an image and increasing Y values do 'down'.- Specified by:
setOriginin interfaceModel3D.ImageData- Parameters:
x- the X coordinate in the image's user spacey- the Y coordinate in the image's user space
-
setOrigin
public void setOrigin(double x, double y) Description copied from interface:Model3D.ImageDataSet the origin give double-precision coordinates The origin is the point on the image that will correspond to points in the model for which x = 0.0 and y = 0.0. Note that user space follows the standard Java convention in which increasing X values go 'right' on an image and increasing Y values do 'down'.- Specified by:
setOriginin interfaceModel3D.ImageData- Parameters:
x- the X coordinate in the image's user spacey- the Y coordinate in the image's user space
-
setOrigin
public void setOrigin(float x, float y) Description copied from interface:Model3D.ImageDataSet the origin given floating-point coordinates. The origin is the point on the image that will correspond to points in the model for which x = 0.0 and y = 0.0. Note that user space follows the standard Java convention in which increasing X values go 'right' on an image and increasing Y values do 'down'.- Specified by:
setOriginin interfaceModel3D.ImageData- Parameters:
x- the user-space x-coordinate of the originy- the user-space y-coordinate of the origin
-
setOrigin
public void setOrigin(int offset) Description copied from interface:Model3D.ImageDataSet the origin given an integer offset. The origin is the point on the image that will correspond to points in the model for which x = 0.0 and y = 0.0. When the offset is non-negative, the offset gives the distance in user-space coordinates, for both the x coordinate and the y coordinate, from the lower left corner of the image to the position of the origin. When negative, the absolute value gives the distances from the upper right corner of the image.- Specified by:
setOriginin interfaceModel3D.ImageData- Parameters:
offset- the offset
-
setOrigin
public void setOrigin(double offset) Description copied from interface:Model3D.ImageDataSet the origin given a double-precision offset. The origin is the point on the image that will correspond to points in the model for which x = 0.0 and y = 0.0. When the offset is non-negative, the offset gives the distance in user-space coordinates, for both the x coordinate and the y coordinate, from the lower left corner of the image to the position of the origin. When negative, the absolute value gives the distances from the upper right corner of the image.- Specified by:
setOriginin interfaceModel3D.ImageData- Parameters:
offset- the offset
-
setOrigin
public void setOrigin(float offset) Description copied from interface:Model3D.ImageDataSet the origin given an offset. The origin is the point on the image that will correspond to points in the model for which x = 0.0 and y = 0.0. When the offset is non-negative, the offset gives the distance in user-space coordinates, for both the x coordinate and the y coordinate, from the lower left corner of the image to the position of the origin. When negative, the absolute value gives the distances from the upper right corner of the image.- Specified by:
setOriginin interfaceModel3D.ImageData- Parameters:
offset- the offset
-
setOriginByFraction
public void setOriginByFraction(double offset) Description copied from interface:Model3D.ImageDataSet the origin given a double-precision fractional offset. The origin is the point on the image that will correspond to points in the model for which x = 0.0 and y = 0.0. The fractional offset sets the offset to the value of offset multiplied by the width and height for the x coordinate and y coordinate respectively. If the offset is positive, the offset is from the lower-left corner of an image. If negative, the offset is from the upper right corner.- Specified by:
setOriginByFractionin interfaceModel3D.ImageData- Parameters:
offset- the fractional offset in the range (-1.0, 1.0)
-
setOriginByFraction
public void setOriginByFraction(float offset) Description copied from interface:Model3D.ImageDataSet the origin given a single-precision fractional offset. The origin is the point on the image that will correspond to points in the model for which x = 0.0 and y = 0.0. The fractional offset sets the offset to the value of offset multiplied by the width and height for the x coordinate and y coordinate respectively. If the offset is positive, the offset is from the lower-left corner of an image. If negative, the offset is from the upper right corner.- Specified by:
setOriginByFractionin interfaceModel3D.ImageData- Parameters:
offset- the fractional offset in the range (-1.0, 1.0)
-
setOrigin
public void setOrigin()Description copied from interface:Model3D.ImageDataSet the origin to a default value. The origin is the point on the image that will correspond to points in the model for which x = 0.0 and y = 0.0. The default will place the origin in the center of an image.- Specified by:
setOriginin interfaceModel3D.ImageData
-
getPhi
public double getPhi()Description copied from interface:Model3D.ImageDataGet the Eulerian angle phi for a coordinate rotation. A coordinate rotation and translation refers to a new position and orientation of the coordinate system assuming the model is held stationary. The model will appear to rotate and translate in the opposite direction from that specified by these Eulerian angles.- Specified by:
getPhiin interfaceModel3D.ImageData- Returns:
- the value of phi in radians
- See Also:
-
getTheta
public double getTheta()Description copied from interface:Model3D.ImageDataGet the Eulerian angle theta for a coordinate rotation. A coordinate rotation and translation refers to a new position and orientation of the coordinate system assuming the model is held stationary. The model will appear to rotate and translate in the opposite direction from that specified by these Eulerian angles.- Specified by:
getThetain interfaceModel3D.ImageData- Returns:
- the value of theta in radians
- See Also:
-
getPsi
public double getPsi()Description copied from interface:Model3D.ImageDataGet the Eulerian angle psi for a coordinate rotation. A coordinate rotation and translation refers to a new position and orientation of the coordinate system assuming the model is held stationary. The model will appear to rotate and translate in the opposite direction from that specified by these Eulerian angles.- Specified by:
getPsiin interfaceModel3D.ImageData- Returns:
- the value of psi in radians
- See Also:
-
setCoordRotation
public void setCoordRotation(double phi, double theta, double psi) Description copied from interface:Model3D.ImageDataRotate the Model3D coordinates. When all values are zero, the original z axis is perpendicular to an image, the original x axis is horizontal, and the original y axis is vertical, all following the standard mathematical convention that the x axis goes from left to right, the y axis goes from bottom to top. The z axis points towards the viewer.The Eulerian angles follow the convention used in Goldstein, "Classical Mechanics": phi is the angle the x-axis rotates with positive values of phi indicating a counter-clockwise rotation when viewed from positive values of z towards the plane in which z=0. Theta then indicates a rotation about the new x axis, and psi indicates a rotation about the final z axis.
Note that the coordinate system is being rotated, not the object being displayed, and that the rotation applies from the original axes, as opposed to being applied incrementally.
- Specified by:
setCoordRotationin interfaceModel3D.ImageData- Parameters:
phi- the Eulerian angle phi in radianstheta- the Eulerian angle theta in radianspsi- the Eulerian angle psi in radians
-
getRotationXOrigin
public double getRotationXOrigin()Description copied from interface:Model3D.ImageDataGet the X coordinate of the origin/target point for a coordinate rotation. This is the first argument to the most recent call toModel3D.ImageData.setRotationOrigin(double,double,double)orModel3D.ImageData.setRotationOrigin(double,double,double,boolean).- Specified by:
getRotationXOriginin interfaceModel3D.ImageData- Returns:
- the X coordinate in the model's coordinate system
-
getRotationYOrigin
public double getRotationYOrigin()Description copied from interface:Model3D.ImageDataGet the Y coordinate of the origin/target point for a coordinate rotation. This is the first argument to the most recent call toModel3D.ImageData.setRotationOrigin(double,double,double)orModel3D.ImageData.setRotationOrigin(double,double,double,boolean).- Specified by:
getRotationYOriginin interfaceModel3D.ImageData- Returns:
- the Y coordinate in the model's coordinate system
-
getRotationZOrigin
public double getRotationZOrigin()Description copied from interface:Model3D.ImageDataGet the Z coordinate of the origin/target point for a coordinate rotation. This is the second argument to the most recent call toModel3D.ImageData.setRotationOrigin(double,double,double)orModel3D.ImageData.setRotationOrigin(double,double,double,boolean).- Specified by:
getRotationZOriginin interfaceModel3D.ImageData- Returns:
- the Z coordinate in the model's coordinate system
-
moveOriginAfterRotation
public boolean moveOriginAfterRotation()Description copied from interface:Model3D.ImageDataDetermine if the transformed origin for (0,0,0) will be moved to the coordinate origin after the rotation is completed. This is the value of the last argument to the most recent call toModel3D.ImageData.setRotationOrigin(double,double,double,boolean), which is also called by the three-argument methodModel3D.ImageData.setRotationOrigin(double,double,double)with a final argument offalse. When false, the rotation occurs about a specified point. When true, the rotation in effect occurs around (0, 0, 0) and then (0, 0, 0) is moved to the rotation origin.- Specified by:
moveOriginAfterRotationin interfaceModel3D.ImageData- Returns:
- true if it will be moved; false if not
- See Also:
-
setRotationOrigin
public void setRotationOrigin(double x, double y, double z) Description copied from interface:Model3D.ImageDataMove the rotation origin for a coordinate rotation. The default performs a coordinate rotation about the point (0,0,0). For another value, the point (x, y, z) before the rotation will have the same value in the new coordinate system: (x,y,z) = (x',y',z'). The x, y, and z arguments refer to the model's coordinate system.- Specified by:
setRotationOriginin interfaceModel3D.ImageData- Parameters:
x- the x coordinate about which to perform the rotationy- the y coordinate about which to perform the rotationz- the z coordinate about which to perform the rotation
-
setRotationOrigin
public void setRotationOrigin(double x, double y, double z, boolean move) Description copied from interface:Model3D.ImageDataMove the rotation origin for a coordinate rotation with options. Setting the 'move' argument to true is useful when you want to rotate an object and place the previous origin at a specific location. The x, y, and z arguments refer to the model's coordinate system.- Specified by:
setRotationOriginin interfaceModel3D.ImageData- Parameters:
x- the x coordinate about which to perform the rotationy- the y coordinate about which to perform the rotationz- the z coordinate about which to perform the rotationmove- false if (x,y,z) will have the same value after the rotation; true if the point (0,0,0) in the old coordinate system will be mapped to the point (x,y,z) in the new coordinate system after the rotation is complete.- See Also:
-
getXTranslation
public double getXTranslation()Description copied from interface:Model3D.ImageDataGet the coordinate translation in the X direction that will be applied after other coordinate transformations are completed. (Note: because the coordinate system is being translated, objects will appear to move in the opposite direction).- Specified by:
getXTranslationin interfaceModel3D.ImageData- Returns:
- the translation in the X direction
-
getYTranslation
public double getYTranslation()Description copied from interface:Model3D.ImageDataGet the coordinate translation in the Y direction that will be applied after other coordinate transformations are completed. (Note: because the coordinate system is being translated, objects will appear to move in the opposite direction).- Specified by:
getYTranslationin interfaceModel3D.ImageData- Returns:
- the translation in the Y direction
-
setTranslation
public void setTranslation(double x, double y) Description copied from interface:Model3D.ImageDataSpecify translation after coordinate changes. After other coordinate transformations are complete, the coordinate system in which a Model3D object is shown may be translated by an amount x in the x direction and an amount y in the y direction. The object displayed will appear to move in the opposite direction.- Specified by:
setTranslationin interfaceModel3D.ImageData- Parameters:
x- the x-axis translationy- the y-axis translation
-
getDelta
public double getDelta()Description copied from interface:Model3D.ImageDataGet the minimum triangle size for rendering. The size is measured in the x, y, and z directions. Larger triangles will be split into some number of smaller ones. Triangles will not be split if the value is zero.- Specified by:
getDeltain interfaceModel3D.ImageData- Returns:
- the minimum size
- See Also:
-
setDelta
public void setDelta(double delta) Description copied from interface:Model3D.ImageDataSet the minimum triangle size for rendering. The value of this parameter, if nonzero, specifies the maximum dimensions of a triangle that is to be rendered in the x, y, and z directions. If a triangle is larger, it is partitioned into a smaller set of triangles. This partitioning applies only during rendering. Setting the minimum size to a small, nonzero value can improve rendering by making the calculation of which triangle is in front of others more reliable. Too small a value, however, may slow rendering considerably. Units are those used for a triangle's X, Y, and Z coordinates.- Specified by:
setDeltain interfaceModel3D.ImageData- Parameters:
delta- the triangle dimension limit; zero to indicate that triangles should not be split
-
getLightSourcePhi
public double getLightSourcePhi()Description copied from interface:Model3D.ImageDataGet the light-source parameter phi. The parameter partially determines the direction of the light source as described in the documentation forsetLightSource.- Specified by:
getLightSourcePhiin interfaceModel3D.ImageData- Returns:
- the light-source parameter phi in radians
- See Also:
-
getLightSourceTheta
public double getLightSourceTheta()Description copied from interface:Model3D.ImageDataGet the light-source parameter theta. The parameter partially determines the direction of the light source as described in the documentation forsetLightSource.- Specified by:
getLightSourceThetain interfaceModel3D.ImageData- Returns:
- the light-source parameter theta in radians
- See Also:
-
setLightSource
public void setLightSource(double phi, double theta) Description copied from interface:Model3D.ImageDataSets the direction to a light source. The default direction, in which theta=0, corresponds to a light source at infinity aimed vertically downwards towards the x-y plane. The brightness used for a triangle varies as the cosine of the angle between a vector pointing in the direction of the light source and a vector perpendicular to the plane of the triangle.- Specified by:
setLightSourcein interfaceModel3D.ImageData- Parameters:
phi- the angle in radians about the z axis of the plane containing the z axis and a unit vector pointing towards the light source. If phi is zero, this plane includes the x axis and for non-zero theta, the unit vector will have a positive x component.theta- the angle in radians between a unit vector pointing towards the light source makes and with a vector parallel to the z axis.
-
getColorFactor
public double getColorFactor()Description copied from interface:Model3D.ImageDataGet the color factor. After coordinate transformations, the red, blue, and green components of the color of an object will be scaled depending on its height so that, for the same orientation, triangles at with the lowest values of 'z' will be dimmer than those with the maximum value of 'z' by this factor. A value of zero indicates that the color factor will be ignored. A value larger than 1.0 will result in the multiple Z values being rendered in black, but with more color separation for higher Z values.- Specified by:
getColorFactorin interfaceModel3D.ImageData- Returns:
- the color factor
- See Also:
-
setColorFactor
public void setColorFactor(double factor) Description copied from interface:Model3D.ImageDataSet the color factor. After coordinate transformations, the red, blue, and green components of the color of an object will be scaled depending on its height so that, for the same orientation, triangles at with the lowest values of 'z' will be dimmer than those with the maximum value of 'z' by this factor. If the value is 1.0, the smallest z value of the object will be rendered as black. A value of 0.0 indicates that the color factor will be ignored. A value larger than 1.0 will result in the multiple Z values being rendered in black, but with more color separation for higher Z values.This is intended to help emphasize differences along the 'z' axis that would normally be hard to discern visually.
- Specified by:
setColorFactorin interfaceModel3D.ImageData- Parameters:
factor- the color factor given as a non-negative number
-
getNormalFactor
public double getNormalFactor()Description copied from interface:Model3D.ImageDataGet the normal factor After a coordinate transformation, the normal factor is used to reduce the color factor towards 0.0 when a surface segment' is not aligned with the Z axis. If the Z component of the segment's normal vector is nz and the normal factor is larger than 0.0, the color factor is multiplied by exp(-(1.0-nz)/normalFactor). Since the normal vector has a length of 1.0, when the normal vector does not point in the positive Z direction, nz will be less than 1.0 and the color factor will be reduced.- Specified by:
getNormalFactorin interfaceModel3D.ImageData- Returns:
- the normal factor; 0.0 if there is none
-
setNormalFactor
public void setNormalFactor(double factor) Description copied from interface:Model3D.ImageDataSet the normal factor. After a coordinate transformation, the normal factor is used to reduce the color factor towards 0.0 when a surface segment' is not aligned with the Z axis. If the Z component of the segment's normal vector is nz and the normal factor is larger than 0.0, the color factor is multiplied by exp(-(1.0-nz)/normalFactor). Since the normal vector has a length of 1.0, when the normal vector does not point in the positive Z direction, nz will be less than 1.0 and the color factor will be reduced.- Specified by:
setNormalFactorin interfaceModel3D.ImageData- Parameters:
factor- the normal factor; 0.0 or negative if there is none
-
getBacksideColor
Description copied from interface:Model3D.ImageDataGet the color for the the side of a triangle that should not be visible due to being on the inside of a closed manifold.- Specified by:
getBacksideColorin interfaceModel3D.ImageData- Returns:
- the color
-
setBacksideColor
Description copied from interface:Model3D.ImageDataSet the color for the side of a triangle that should not be visible due to being on the inside of a closed manifold. This is useful for debugging a model: one class of errors results in a triangle having the wrong orientation, and setting this parameter can help indicate where the problem is in the model.- Specified by:
setBacksideColorin interfaceModel3D.ImageData- Parameters:
c- the color; null if a color is not set
-
getEdgeColor
Description copied from interface:Model3D.ImageDataGet the color used to indicate the edges of a triangle- Specified by:
getEdgeColorin interfaceModel3D.ImageData- Returns:
- the color or null to indicate that edges will not be shown
-
setEdgeColor
Description copied from interface:Model3D.ImageDataSet the color to use to use to draw the edges of triangles.- Specified by:
setEdgeColorin interfaceModel3D.ImageData- Parameters:
c- the color; null if edges should not be displayed
-
getDefaultSegmentColor
Description copied from interface:Model3D.ImageDataGet the color to use for line segments explicitly added or associated with triangles added for rendering. The phrase "[line segments] associated with triangles" refers to the additional edges of triangles that were added during the rendering process to minimize z-order issues that can occur when at least one edge of a triangle is abnormally large. Such triangles may be added whenModel3D.ImageData.setDelta(double)is called with a non-zero argument.- Specified by:
getDefaultSegmentColorin interfaceModel3D.ImageData- Returns:
- the color; null if the line segments should not be shown
-
setDefaultSegmentColor
Description copied from interface:Model3D.ImageDataSet the color to use for line segments explicitly added or associated with triangles added for rendering. The phrase "[line segments] associated with triangles" refers to the additional edges of triangles that were added during the rendering process to minimize z-order issues that can occur when at least one edge of a triangle is abnormally large. Such triangles may be added whenModel3D.ImageData.setDelta(double)is called with a non-zero argument.- Specified by:
setDefaultSegmentColorin interfaceModel3D.ImageData- Parameters:
c- the color; null if line segments should not be displayed
-
getDefaultBacksideSegmentColor
Description copied from interface:Model3D.ImageDataGet the default backside color to use for line segments associated with triangles added for rendering. The phrase "[line segments] associated with triangles" refers to the additional edges of triangles that were added during the rendering process to minimize z-order issues that can occur when at least one edge of a triangle is abnormally large. Such triangles may be added whenModel3D.ImageData.setDelta(double)is called with a non-zero argument.- Specified by:
getDefaultBacksideSegmentColorin interfaceModel3D.ImageData- Returns:
- the color; null if the line segments should not be shown
-
setDefaultBacksideSegmentColor
Description copied from interface:Model3D.ImageDataSet the default backside color to use for line segments associated with triangles added for rendering. The phrase "[line segments] associated with triangles" refers to the additional edges of triangles that were added during the rendering process to minimize z-order issues that can occur when at least one edge of a triangle is abnormally large. Such triangles may be added whenModel3D.ImageData.setDelta(double)is called with a non-zero argument.- Specified by:
setDefaultBacksideSegmentColorin interfaceModel3D.ImageData- Parameters:
c- the color; null if these line segments should not be displayed
-
reset
public void reset()Description copied from interface:Model3D.ImageDataReset to default values.- Specified by:
resetin interfaceModel3D.ImageData
-
write
Write the image to a file given a file name. The type parameters are strings naming the file format as used by the classjavax.imageio.ImageIO- Parameters:
type- the file typename- the file name- Throws:
IOException- an error occurred during writing
-
write
Write the image to a file. The type parameters are strings naming the file format as used by the classjavax.imageio.ImageIO- Parameters:
type- the file typefile- the file to write- Throws:
IOException- an error occurred during writing
-
write
Write the image to a file provided by a file accessor. The type parameters are strings naming the file format as used by the classjavax.imageio.ImageIO- Parameters:
type- the file typefa- the file accessor to use- Throws:
IOException- an error occurred during writing
-
write
Write the image to an output stream. The type parameters are strings naming the file format as used by the classjavax.imageio.ImageIO- Parameters:
type- the file typeos- the output stream to which to write the image- Throws:
IOException- an error occurred during writing
-
write
Write the image to its OutputStreamGraphics.- Throws:
IOException- an IO error occurred.
-