Package javax.media.j3d

# Class PolygonAttributes

java.lang.Object
javax.media.j3d.SceneGraphObject
javax.media.j3d.NodeComponent
javax.media.j3d.PolygonAttributes

public class PolygonAttributes extends NodeComponent
The PolygonAttributes object defines attributes for rendering polygon primitives. Polygon primitives include triangles, triangle strips, triangle fans, and quads. The polygon attributes that can be defined are:

- Rasterization mode - defines how the polygon is drawn: as points, outlines, or filled.

  - POLYGON_POINT - the polygon is rendered as points drawn at the vertices.

  - POLYGON_LINE - the polygon is rendered as lines drawn between consecutive vertices.

  - POLYGON_FILL - the polygon is rendered by filling the interior between the vertices. The default mode.

- Face culling - defines which polygons are culled (discarded) before they are converted to screen coordinates.

  - CULL_NONE - disables face culling.
  - CULL_BACK - culls all back-facing polygons. The default.
  - CULL_FRONT - culls all front-facing polygons.

- Back-face normal flip - specifies whether vertex normals of back-facing polygons are flipped (negated) prior to lighting. The setting is either true, meaning to flip back-facing normals, or false. The default is false.

- Offset - the depth values of all pixels generated by polygon rasterization can be offset by a value that is computed for that polygon. Two values are used to specify the offset:

- Offset bias - the constant polygon offset that is added to the final device coordinate Z value of polygon primitives.

- Offset factor - the factor to be multiplied by the slope of the polygon and then added to the final, device coordinate Z value of the polygon primitives.

These values can be either positive or negative. The default for both of these values is 0.0.

See Also:
  - `Appearance`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`ALLOW_CULL_FACE_READ`
Specifies that this PolygonAttributes object allows reading its cull face information.
`static final int`
`ALLOW_CULL_FACE_WRITE`
Specifies that this PolygonAttributes object allows writing its cull face information.
`static final int`
`ALLOW_MODE_READ`
Specifies that this PolygonAttributes object allows reading its polygon mode information.
`static final int`
`ALLOW_MODE_WRITE`
Specifies that this PolygonAttributes object allows writing its polygon mode information.
`static final int`
`ALLOW_NORMAL_FLIP_READ`
Specifies that this PolygonAttributes object allows reading its back face normal flip flag.
`static final int`
`ALLOW_NORMAL_FLIP_WRITE`
Specifies that this PolygonAttributes object allows writing its back face normal flip flag.
`static final int`
`ALLOW_OFFSET_READ`
Specifies that this PolygonAttributes object allows reading its polygon offset information.
`static final int`
`ALLOW_OFFSET_WRITE`
Specifies that this PolygonAttributes object allows writing its polygon offset information.
`static final int`
`CULL_BACK`
Cull all back-facing polygons.
`static final int`
`CULL_FRONT`
Cull all front-facing polygons.
`static final int`
`CULL_NONE`
Don't perform any face culling.
`static final int`
`POLYGON_FILL`
Render polygonal primitives by filling the interior of the polygon.
`static final int`
`POLYGON_LINE`
Render polygonal primitives as lines drawn between consecutive vertices of the polygon.
`static final int`
`POLYGON_POINT`
Render polygonal primitives as points drawn at the vertices of the polygon.

## Constructor Summary

Constructors
Constructor
Description
`PolygonAttributes()`
Constructs a PolygonAttributes object with default parameters.
`PolygonAttributes(int polygonMode, int cullFace, float polygonOffset)`
Constructs a PolygonAttributes object with specified values.
`PolygonAttributes(int polygonMode, int cullFace, float polygonOffset, boolean backFaceNormalFlip)`
Constructs PolygonAttributes object with specified values.
`PolygonAttributes(int polygonMode, int cullFace, float polygonOffset, boolean backFaceNormalFlip, float polygonOffsetFactor)`
Constructs PolygonAttributes object with specified values.

## Method Summary

Modifier and Type
Method
Description
`NodeComponent`
`cloneNodeComponent()`
Deprecated.
replaced with cloneNodeComponent(boolean forceDuplicate)
`boolean`
`getBackFaceNormalFlip()`
Gets the back face normal flip flag.
`int`
`getCullFace()`
Gets the face culling for this appearance component object.
`int`
`getPolygonMode()`
Gets the polygon rasterization mode for this appearance component object.
`float`
`getPolygonOffset()`
Gets the constant polygon offset.
`float`
`getPolygonOffsetFactor()`
Gets the polygon offset factor.
`void`
`setBackFaceNormalFlip(boolean backFaceNormalFlip)`
Sets the back face normal flip flag to the specified value.
`void`
`setCullFace(int cullFace)`
Sets the face culling for this appearance component object.
`void`
`setPolygonMode(int polygonMode)`
Sets the polygon rasterization mode for this appearance component object.
`void`
`setPolygonOffset(float polygonOffset)`
Sets the constant polygon offset to the specified value.
`void`
`setPolygonOffsetFactor(float polygonOffsetFactor)`
Sets the polygon offset factor to the specified value.

### Methods inherited from class javax.media.j3d.NodeComponent

`cloneNodeComponent, duplicateNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree`

### Methods inherited from class javax.media.j3d.SceneGraphObject

`clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### ALLOW_CULL_FACE_READ

public static final int ALLOW_CULL_FACE_READ
Specifies that this PolygonAttributes object allows reading its cull face information.

See Also:
  - Constant Field Values

### ALLOW_CULL_FACE_WRITE

public static final int ALLOW_CULL_FACE_WRITE
Specifies that this PolygonAttributes object allows writing its cull face information.

See Also:
  - Constant Field Values

### ALLOW_NORMAL_FLIP_READ

public static final int ALLOW_NORMAL_FLIP_READ
Specifies that this PolygonAttributes object allows reading its back face normal flip flag.

See Also:
  - Constant Field Values

### ALLOW_NORMAL_FLIP_WRITE

public static final int ALLOW_NORMAL_FLIP_WRITE
Specifies that this PolygonAttributes object allows writing its back face normal flip flag.

See Also:
  - Constant Field Values

### ALLOW_MODE_READ

public static final int ALLOW_MODE_READ
Specifies that this PolygonAttributes object allows reading its polygon mode information.

See Also:
  - Constant Field Values

### ALLOW_MODE_WRITE

public static final int ALLOW_MODE_WRITE
Specifies that this PolygonAttributes object allows writing its polygon mode information.

See Also:
  - Constant Field Values

### ALLOW_OFFSET_READ

public static final int ALLOW_OFFSET_READ
Specifies that this PolygonAttributes object allows reading its polygon offset information.

See Also:
  - Constant Field Values

### ALLOW_OFFSET_WRITE

public static final int ALLOW_OFFSET_WRITE
Specifies that this PolygonAttributes object allows writing its polygon offset information.

See Also:
  - Constant Field Values

### POLYGON_POINT

@Native public static final int POLYGON_POINT
Render polygonal primitives as points drawn at the vertices of the polygon.

See Also:
  - Constant Field Values

### POLYGON_LINE

@Native public static final int POLYGON_LINE
Render polygonal primitives as lines drawn between consecutive vertices of the polygon.

See Also:
  - Constant Field Values

### POLYGON_FILL

@Native public static final int POLYGON_FILL
Render polygonal primitives by filling the interior of the polygon.

See Also:
  - Constant Field Values

### CULL_NONE

@Native public static final int CULL_NONE
Don't perform any face culling.

See Also:
  - Constant Field Values

### CULL_BACK

@Native public static final int CULL_BACK
Cull all back-facing polygons. This is the default mode.

See Also:
  - Constant Field Values

### CULL_FRONT

@Native public static final int CULL_FRONT
Cull all front-facing polygons.

See Also:
  - Constant Field Values

## Constructor Details

### PolygonAttributes

public PolygonAttributes()
Constructs a PolygonAttributes object with default parameters. The default values are as follows:

cull face : CULL_BACK
back face normal flip : false
polygon mode : POLYGON_FILL
polygon offset : 0.0
polygon offset factor : 0.0

### PolygonAttributes

public PolygonAttributes(int polygonMode, int cullFace, float polygonOffset)
Constructs a PolygonAttributes object with specified values.

Parameters:
  `polygonMode` - polygon rasterization mode; one of POLYGON_POINT, POLYGON_LINE, or POLYGON_FILL
  `cullFace` - polygon culling mode; one of CULL_NONE, CULL_BACK, or CULL_FRONT
  `polygonOffset` - constant polygon offset

### PolygonAttributes

public PolygonAttributes(int polygonMode, int cullFace, float polygonOffset, boolean backFaceNormalFlip)
Constructs PolygonAttributes object with specified values.

Parameters:
  `polygonMode` - polygon rasterization mode; one of POLYGON_POINT, POLYGON_LINE, or POLYGON_FILL
  `cullFace` - polygon culling mode; one of CULL_NONE, CULL_BACK, or CULL_FRONT
  `polygonOffset` - constant polygon offset
  `backFaceNormalFlip` - back face normal flip flag; true or false

### PolygonAttributes

public PolygonAttributes(int polygonMode, int cullFace, float polygonOffset, boolean backFaceNormalFlip, float polygonOffsetFactor)
Constructs PolygonAttributes object with specified values.

Parameters:
  `polygonMode` - polygon rasterization mode; one of POLYGON_POINT, POLYGON_LINE, or POLYGON_FILL
  `cullFace` - polygon culling mode; one of CULL_NONE, CULL_BACK, or CULL_FRONT
  `polygonOffset` - constant polygon offset
  `backFaceNormalFlip` - back face normal flip flag; true or false
  `polygonOffsetFactor` - polygon offset factor for slope-based polygon offset
Since:
  Java 3D 1.2

## Method Details

### setCullFace

public void setCullFace(int cullFace)
Sets the face culling for this appearance component object.

Parameters:
  `cullFace` - the face to be culled, one of: CULL_NONE, CULL_FRONT, or CULL_BACK
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getCullFace

public int getCullFace()
Gets the face culling for this appearance component object.

Returns:
  the face to be culled
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setBackFaceNormalFlip

public void setBackFaceNormalFlip(boolean backFaceNormalFlip)
Sets the back face normal flip flag to the specified value. This flag indicates whether vertex normals of back facing polygons should be flipped (negated) prior to lighting. When this flag is set to true and back face culling is disabled, polygons are rendered as if the polygon had two sides with opposing normals. This feature is disabled by default.

Parameters:
  `backFaceNormalFlip` - the back face normal flip flag
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getBackFaceNormalFlip

public boolean getBackFaceNormalFlip()
Gets the back face normal flip flag.

Returns:
  the back face normal flip flag
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setPolygonMode

public void setPolygonMode(int polygonMode)
Sets the polygon rasterization mode for this appearance component object.

Parameters:
  `polygonMode` - the polygon rasterization mode to be used; one of POLYGON_FILL, POLYGON_LINE, or POLYGON_POINT
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getPolygonMode

public int getPolygonMode()
Gets the polygon rasterization mode for this appearance component object.

Returns:
  the polygon rasterization mode
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setPolygonOffset

public void setPolygonOffset(float polygonOffset)
Sets the constant polygon offset to the specified value. This screen space offset is added to the final, device coordinate Z value of polygon primitives.

Parameters:
  `polygonOffset` - the constant polygon offset
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getPolygonOffset

public float getPolygonOffset()
Gets the constant polygon offset.

Returns:
  the constant polygon offset
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setPolygonOffsetFactor

public void setPolygonOffsetFactor(float polygonOffsetFactor)
Sets the polygon offset factor to the specified value. This factor is multiplied by the slope of the polygon, and then added to the final, device coordinate Z value of polygon primitives.

Parameters:
  `polygonOffsetFactor` - the polygon offset factor
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
Since:
  Java 3D 1.2

### getPolygonOffsetFactor

public float getPolygonOffsetFactor()
Gets the polygon offset factor.

Returns:
  the polygon offset factor.
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
Since:
  Java 3D 1.2

### cloneNodeComponent

public NodeComponent cloneNodeComponent()
Deprecated.
replaced with cloneNodeComponent(boolean forceDuplicate)

Overrides:
  `cloneNodeComponent` in class `NodeComponent`