javax.media.j3d

## Class LineAttributes

- java.lang.Object
- - javax.media.j3d.SceneGraphObject
  - - javax.media.j3d.NodeComponent
    - - javax.media.j3d.LineAttributes

-     public class LineAttributes
      extends NodeComponent

  The LineAttributes object defines all rendering state that can be set as a component object of a Shape3D node. The line attributes that can be defined are:

  - Pattern - specifies the pattern used to draw the line:

    - PATTERN_SOLID - draws a solid line with no pattern. This is the default.

    - PATTERN_DASH - draws dashed lines. Ideally, these will be drawn with a repeating pattern of 8 pixels on and 8 pixels off.

    - PATTERN_DOT - draws dotted lines. Ideally, these will be drawn with a repeating pattern of 1 pixel on and 7 pixels off.

    - PATTERN_DASH_DOT - draws dashed-dotted lines. Ideally, these will be drawn with a repeating pattern of 7 pixels on, 4 pixels off, 1 pixel on, and 4 pixels off.

    - PATTERN_USER_DEFINED - draws lines with a user-defined line pattern. See "User-defined Line Patterns," below.

  - Antialiasing (enabled or disabled). By default, antialiasing is disabled.

  If antialiasing is enabled, the lines are considered transparent for rendering purposes. They are rendered with all the other transparent objects and adhere to the other transparency settings such as the View transparency sorting policy and the View depth buffer freeze transparent enable.

  - Width (in pixels). The default is a line width of one pixel.

  User-defined Line Patterns

  A user-defined line pattern is specified with a pattern mask and an optional scale factor.

  The Pattern Mask

  The pattern is specified using a 16-bit mask that specifies on and off segments. Bit 0 in the pattern mask corresponds to the first pixel of the line or line strip primitive. A value of 1 for a bit in the pattern mask indicates that the corresponding pixel is drawn, while a value of 0 indicates that the corresponding pixel is not drawn. After all 16 bits in the pattern are used, the pattern is repeated.

  For example, a mask of 0x00ff defines a dashed line with a repeating pattern of 8 pixels on followed by 8 pixels off. A value of 0x0101 defines a a dotted line with a repeating pattern of 1 pixel on and 7 pixels off.

  The pattern continues around individual line segments of a line strip primitive. It is restarted at the beginning of each new line strip. For line array primitives, the pattern is restarted at the beginning of each line.

  The Scale Factor

  The pattern is multiplied by the scale factor such that each bit in the pattern mask corresponds to that many consecutive pixels. For example, a scale factor of 3 applied to a pattern mask of 0x001f would produce a repeating pattern of 15 pixels on followed by 33 pixels off. The valid range for this attribute is [1,15]. Values outside this range are clamped.

  See Also:
    `Appearance`, `View`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ALLOW_ANTIALIASING_READ` Specifies that this LineAttributes object allows reading its line antialiasing flag.
    `static int` | `ALLOW_ANTIALIASING_WRITE` Specifies that this LineAttributes object allows writing its line antialiasing flag.
    `static int` | `ALLOW_PATTERN_READ` Specifies that this LineAttributes object allows reading its line pattern information.
    `static int` | `ALLOW_PATTERN_WRITE` Specifies that this LineAttributes object allows writing its line pattern information.
    `static int` | `ALLOW_WIDTH_READ` Specifies that this LineAttributes object allows reading its line width information.
    `static int` | `ALLOW_WIDTH_WRITE` Specifies that this LineAttributes object allows writing its line width information.
    `static int` | `PATTERN_DASH` Draw dashed lines.
    `static int` | `PATTERN_DASH_DOT` Draw dashed-dotted lines.
    `static int` | `PATTERN_DOT` Draw dotted lines.
    `static int` | `PATTERN_SOLID` Draw solid lines with no pattern.
    `static int` | `PATTERN_USER_DEFINED` Draw lines with a user-defined line pattern.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LineAttributes()` Constructs a LineAttributes object with default parameters.
    `LineAttributes(float lineWidth, int linePattern, boolean lineAntialiasing)` Constructs a LineAttributes object with specified values.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `NodeComponent` | `cloneNodeComponent()` Deprecated. replaced with cloneNodeComponent(boolean forceDuplicate)
    `boolean` | `getLineAntialiasingEnable()` Retrieves the state of the line antialiasing flag.
    `int` | `getLinePattern()` Gets the line pattern for this LineAttributes component object.
    `float` | `getLineWidth()` Gets the line width for this LineAttributes component object.
    `int` | `getPatternMask()` Retrieves the line pattern mask.
    `int` | `getPatternScaleFactor()` Retrieves the line pattern scale factor.
    `void` | `setLineAntialiasingEnable(boolean state)` Enables or disables line antialiasing for this LineAttributes component object.
    `void` | `setLinePattern(int linePattern)` Sets the line pattern for this LineAttributes component object.
    `void` | `setLineWidth(float lineWidth)` Sets the line width for this LineAttributes component object.
    `void` | `setPatternMask(int mask)` Sets the line pattern mask to the specified value.
    `void` | `setPatternScaleFactor(int scaleFactor)` Sets the line pattern scale 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 Detail

    - #### ALLOW_WIDTH_READ

          public static final int ALLOW_WIDTH_READ

      Specifies that this LineAttributes object allows reading its line width information.
      See Also:
        Constant Field Values

    - #### ALLOW_WIDTH_WRITE

          public static final int ALLOW_WIDTH_WRITE

      Specifies that this LineAttributes object allows writing its line width information.
      See Also:
        Constant Field Values

    - #### ALLOW_PATTERN_READ

          public static final int ALLOW_PATTERN_READ

      Specifies that this LineAttributes object allows reading its line pattern information.
      See Also:
        Constant Field Values

    - #### ALLOW_PATTERN_WRITE

          public static final int ALLOW_PATTERN_WRITE

      Specifies that this LineAttributes object allows writing its line pattern information.
      See Also:
        Constant Field Values

    - #### ALLOW_ANTIALIASING_READ

          public static final int ALLOW_ANTIALIASING_READ

      Specifies that this LineAttributes object allows reading its line antialiasing flag.
      See Also:
        Constant Field Values

    - #### ALLOW_ANTIALIASING_WRITE

          public static final int ALLOW_ANTIALIASING_WRITE

      Specifies that this LineAttributes object allows writing its line antialiasing flag.
      See Also:
        Constant Field Values

    - #### PATTERN_SOLID

          public static final int PATTERN_SOLID

      Draw solid lines with no pattern.
      See Also:
        `setLinePattern(int)`, Constant Field Values

    - #### PATTERN_DASH

          public static final int PATTERN_DASH

      Draw dashed lines. Ideally, these will be drawn with a repeating pattern of 8 pixels on and 8 pixels off.
      See Also:
        `setLinePattern(int)`, Constant Field Values

    - #### PATTERN_DOT

          public static final int PATTERN_DOT

      Draw dotted lines. Ideally, these will be drawn with a repeating pattern of 1 pixel on and 7 pixels off.
      See Also:
        `setLinePattern(int)`, Constant Field Values

    - #### PATTERN_DASH_DOT

          public static final int PATTERN_DASH_DOT

      Draw dashed-dotted lines. Ideally, these will be drawn with a repeating pattern of 7 pixels on, 4 pixels off, 1 pixel on, and 4 pixels off.
      See Also:
        `setLinePattern(int)`, Constant Field Values

    - #### PATTERN_USER_DEFINED

          public static final int PATTERN_USER_DEFINED

      Draw lines with a user-defined line pattern. The line pattern is specified with a pattern mask and scale factor.
      Since:
        Java 3D 1.2
      See Also:
        `setLinePattern(int)`, `setPatternMask(int)`, `setPatternScaleFactor(int)`, Constant Field Values

  - ### Constructor Detail

    - #### LineAttributes

          public LineAttributes()

      Constructs a LineAttributes object with default parameters. The default values are as follows:
      line width : 1
      line pattern : PATTERN_SOLID
      pattern mask : 0xffff
      pattern scale factor : 1
      line antialiasing : false

    - #### LineAttributes

          public LineAttributes(float lineWidth,
                        int linePattern,
                        boolean lineAntialiasing)

      Constructs a LineAttributes object with specified values.
      Parameters:
        `lineWidth` - the width of lines in pixels
        `linePattern` - the line pattern, one of PATTERN_SOLID, PATTERN_DASH, PATTERN_DOT, or PATTERN_DASH_DOT
        `lineAntialiasing` - flag to set line antialising ON or OFF

  - ### Method Detail

    - #### setLineWidth

          public void setLineWidth(float lineWidth)

      Sets the line width for this LineAttributes component object.
      Parameters:
        `lineWidth` - the width, in pixels, of line primitives
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getLineWidth

          public float getLineWidth()

      Gets the line width for this LineAttributes component object.
      Returns:
        the width, in pixels, of line primitives
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setLinePattern

          public void setLinePattern(int linePattern)

      Sets the line pattern for this LineAttributes component object.
      Parameters:
        `linePattern` - the line pattern to be used, one of: PATTERN_SOLID, PATTERN_DASH, PATTERN_DOT, PATTERN_DASH_DOT, or PATTERN_USER_DEFINED.
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### getLinePattern

          public int getLinePattern()

      Gets the line pattern for this LineAttributes component object.
      Returns:
        the line pattern
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### setPatternMask

          public void setPatternMask(int mask)

      Sets the line pattern mask to the specified value. This is used when the linePattern attribute is set to PATTERN_USER_DEFINED. In this mode, the pattern is specified using a 16-bit mask that specifies on and off segments. Bit 0 in the pattern mask corresponds to the first pixel of the line or line strip primitive. A value of 1 for a bit in the pattern mask indicates that the corresponding pixel is drawn, while a value of 0 indicates that the corresponding pixel is not drawn. After all 16 bits in the pattern are used, the pattern is repeated. For example, a mask of 0x00ff defines a dashed line with a repeating pattern of 8 pixels on followed by 8 pixels off. A value of 0x0101 defines a a dotted line with a repeating pattern of 1 pixel on and 7 pixels off

      The pattern continues around individual line segments of a line strip primitive. It is restarted at the beginning of each new line strip. For line array primitives, the pattern is restarted at the beginning of each line.

      Parameters:
        `mask` - the new line pattern mask
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      Since:
        Java 3D 1.2
      See Also:
        `setPatternScaleFactor(int)`

    - #### getPatternMask

          public int getPatternMask()

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

    - #### setPatternScaleFactor

          public void setPatternScaleFactor(int scaleFactor)

      Sets the line pattern scale factor to the specified value. This is used in conjunction with the patternMask when the linePattern attribute is set to PATTERN_USER_DEFINED. The pattern is multiplied by the scale factor such that each bit in the pattern mask corresponds to that many consecutive pixels. For example, a scale factor of 3 applied to a pattern mask of 0x001f would produce a repeating pattern of 15 pixels on followed by 33 pixels off. The valid range for this attribute is [1,15]. Values outside this range are clamped.
      Parameters:
        `scaleFactor` - the new line pattern scale 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
      See Also:
        `setPatternMask(int)`

    - #### getPatternScaleFactor

          public int getPatternScaleFactor()

      Retrieves the line pattern scale factor.
      Returns:
        the line pattern scale 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

    - #### setLineAntialiasingEnable

          public void setLineAntialiasingEnable(boolean state)

      Enables or disables line antialiasing for this LineAttributes component object.

      If antialiasing is enabled, the lines are considered transparent for rendering purposes. They are rendered with all the other transparent objects and adhere to the other transparency settings such as the View transparency sorting policy and the View depth buffer freeze transparent enable.

      Parameters:
        `state` - true or false to enable or disable line antialiasing
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      See Also:
        `View`

    - #### getLineAntialiasingEnable

          public boolean getLineAntialiasingEnable()

      Retrieves the state of the line antialiasing flag.
      Returns:
        true if line antialiasing is enabled, false if line antialiasing is disabled
      Throws:
        `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

    - #### cloneNodeComponent

          public NodeComponent cloneNodeComponent()

      Deprecated. replaced with cloneNodeComponent(boolean forceDuplicate)
      Overrides:
        `cloneNodeComponent` in class `NodeComponent`

Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.