Package javax.media.j3d

# Class Text3D

java.lang.Object
javax.media.j3d.SceneGraphObject
javax.media.j3d.NodeComponent
javax.media.j3d.Geometry
javax.media.j3d.Text3D

public class Text3D extends Geometry
A Text3D object is a text string that has been converted to 3D geometry. The Font3D object determines the appearance of the Text3D NodeComponent object. Each Text3D object has the following parameters:

- Font3D object - describes the font style of the text string, such as the font family (Helvetica, Courier, etc.), style (Italic, bold, etc.), and point size. The size of the resulting characters will be equal to the point size. For example, a 12 point font will result in a Font3D with characters 12 meters tall.

- Text string - the text string to be written.

- Position - determines the initial placement of the Text3D string in three-space.

- Alignment - specifies how glyphs in the string are placed in relation to the position parameter. Valid values are:
  - ALIGN_CENTER - the center of the string is placed on the `position` point.
  - ALIGN_FIRST - the first character of the string is placed on the `position` point.
  - ALIGN_LAST - the last character of the string is placed on the `position` point.

- Path - specifies how succeeding glyphs in the string are placed in relation to the previous glyph. Valid values are:

- PATH_LEFT - succeeding glyphs are placed to the left of the current glyph.
- PATH_RIGHT - succeeding glyphs are placed to the right of the current glyph.
- PATH_UP - succeeding glyphs are placed above the current glyph.
- PATH_DOWN - succeeding glyphs are placed below the current glyph.

- Character spacing - the space between characters. This spacing is in addition to the regular spacing between glyphs as defined in the Font object.

See Also:
  - `Font3D`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`ALIGN_CENTER`
`alignment`: the center of the string is placed on the `position` point.
`static final int`
`ALIGN_FIRST`
`alignment`: the first character of the string is placed on the `position` point.
`static final int`
`ALIGN_LAST`
`alignment`: the last character of the string is placed on the `position` point.
`static final int`
`ALLOW_ALIGNMENT_READ`
Specifies that this Text3D object allows reading the text alignment value.
`static final int`
`ALLOW_ALIGNMENT_WRITE`
Specifies that this Text3D object allows writing the text alignment value.
`static final int`
`ALLOW_BOUNDING_BOX_READ`
Specifies that this Text3D object allows reading the text string bounding box value
`static final int`
`ALLOW_CHARACTER_SPACING_READ`
Specifies that this Text3D object allows reading the text character spacing value.
`static final int`
`ALLOW_CHARACTER_SPACING_WRITE`
Specifies that this Text3D object allows writing the text character spacing value.
`static final int`
`ALLOW_FONT3D_READ`
Specifies that this Text3D object allows reading the Font3D component information.
`static final int`
`ALLOW_FONT3D_WRITE`
Specifies that this Text3D object allows writing the Font3D component information.
`static final int`
`ALLOW_PATH_READ`
Specifies that this Text3D object allows reading the text path value.
`static final int`
`ALLOW_PATH_WRITE`
Specifies that this Text3D object allows writing the text path value.
`static final int`
`ALLOW_POSITION_READ`
Specifies that this Text3D object allows reading the text position value.
`static final int`
`ALLOW_POSITION_WRITE`
Specifies that this Text3D object allows writing the text position value.
`static final int`
`ALLOW_STRING_READ`
Specifies that this Text3D object allows reading the String object.
`static final int`
`ALLOW_STRING_WRITE`
Specifies that this Text3D object allows writing the String object.
`static final int`
`PATH_DOWN`
`path`: succeeding glyphs are placed below the current glyph.
`static final int`
`PATH_LEFT`
`path`: succeeding glyphs are placed to the left of the current glyph.
`static final int`
`PATH_RIGHT`
`path`: succeeding glyphs are placed to the left of the current glyph.
`static final int`
`PATH_UP`
`path`: succeeding glyphs are placed above the current glyph.

### Fields inherited from class javax.media.j3d.Geometry

`ALLOW_INTERSECT`

## Constructor Summary

Constructors
Constructor
Description
`Text3D()`
Constructs a Text3D object with default parameters.
`Text3D(Font3D font3D)`
Creates a Text3D object with the given Font3D object.
`Text3D(Font3D font3D, String string)`
Creates a Text3D object given a Font3D object and a string.
`Text3D(Font3D font3D, String string, javax.vecmath.Point3f position)`
Creates a Text3D object given a Font3D, a string and position.
`Text3D(Font3D font3D, String string, javax.vecmath.Point3f position, int alignment, int path)`
Creates a Text3D object given a Font3D, string, position, alignment and path along which string is to be placed.

## Method Summary

Modifier and Type
Method
Description
`NodeComponent`
`cloneNodeComponent()`
Deprecated.
replaced with cloneNodeComponent(boolean forceDuplicate)
`int`
`getAlignment()`
Retrieves the text alignment policy for this Text3D NodeComponent object.
`void`
`getBoundingBox(BoundingBox bounds)`
Retrieves the 3D bounding box that encloses this Text3D object.
`float`
`getCharacterSpacing()`
Retrieves the character spacing used to construct the Text3D string.
`Font3D`
`getFont3D()`
Returns the Font3D objects used by this Text3D NodeComponent object.
`int`
`getPath()`
Retrieves the node's `path` field.
`void`
`getPosition(javax.vecmath.Point3f position)`
Copies the node's `position` field into the supplied parameter.
`String`
`getString()`
Copies the character string used in the construction of the Text3D node into the supplied parameter.
`void`
`setAlignment(int alignment)`
Sets the text alignment policy for this Text3D NodeComponent object.
`void`
`setCharacterSpacing(float characterSpacing)`
Sets the character spacing used when constructing the Text3D string.
`void`
`setFont3D(Font3D font3d)`
Sets the Font3D object used by this Text3D NodeComponent object.
`void`
`setPath(int path)`
Sets the node's `path` field.
`void`
`setPosition(javax.vecmath.Point3f position)`
Sets the node's `position` field to the supplied parameter.
`void`
`setString(String string)`
Copies the character string from the supplied parameter into the Text3D node.

### 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_FONT3D_READ

public static final int ALLOW_FONT3D_READ
Specifies that this Text3D object allows reading the Font3D component information.

See Also:
  - `Font3D`
  - Constant Field Values

### ALLOW_FONT3D_WRITE

public static final int ALLOW_FONT3D_WRITE
Specifies that this Text3D object allows writing the Font3D component information.

See Also:
  - `Font3D`
  - Constant Field Values

### ALLOW_STRING_READ

public static final int ALLOW_STRING_READ
Specifies that this Text3D object allows reading the String object.

See Also:
  - Constant Field Values

### ALLOW_STRING_WRITE

public static final int ALLOW_STRING_WRITE
Specifies that this Text3D object allows writing the String object.

See Also:
  - Constant Field Values

### ALLOW_POSITION_READ

public static final int ALLOW_POSITION_READ
Specifies that this Text3D object allows reading the text position value.

See Also:
  - Constant Field Values

### ALLOW_POSITION_WRITE

public static final int ALLOW_POSITION_WRITE
Specifies that this Text3D object allows writing the text position value.

See Also:
  - Constant Field Values

### ALLOW_ALIGNMENT_READ

public static final int ALLOW_ALIGNMENT_READ
Specifies that this Text3D object allows reading the text alignment value.

See Also:
  - Constant Field Values

### ALLOW_ALIGNMENT_WRITE

public static final int ALLOW_ALIGNMENT_WRITE
Specifies that this Text3D object allows writing the text alignment value.

See Also:
  - Constant Field Values

### ALLOW_PATH_READ

public static final int ALLOW_PATH_READ
Specifies that this Text3D object allows reading the text path value.

See Also:
  - Constant Field Values

### ALLOW_PATH_WRITE

public static final int ALLOW_PATH_WRITE
Specifies that this Text3D object allows writing the text path value.

See Also:
  - Constant Field Values

### ALLOW_CHARACTER_SPACING_READ

public static final int ALLOW_CHARACTER_SPACING_READ
Specifies that this Text3D object allows reading the text character spacing value.

See Also:
  - Constant Field Values

### ALLOW_CHARACTER_SPACING_WRITE

public static final int ALLOW_CHARACTER_SPACING_WRITE
Specifies that this Text3D object allows writing the text character spacing value.

See Also:
  - Constant Field Values

### ALLOW_BOUNDING_BOX_READ

public static final int ALLOW_BOUNDING_BOX_READ
Specifies that this Text3D object allows reading the text string bounding box value

See Also:
  - Constant Field Values

### ALIGN_CENTER

public static final int ALIGN_CENTER
`alignment`: the center of the string is placed on the `position` point.

See Also:
  - `getAlignment()`
  - Constant Field Values

### ALIGN_FIRST

public static final int ALIGN_FIRST
`alignment`: the first character of the string is placed on the `position` point.

See Also:
  - `getAlignment()`
  - Constant Field Values

### ALIGN_LAST

public static final int ALIGN_LAST
`alignment`: the last character of the string is placed on the `position` point.

See Also:
  - `getAlignment()`
  - Constant Field Values

### PATH_LEFT

public static final int PATH_LEFT
`path`: succeeding glyphs are placed to the left of the current glyph.

See Also:
  - `getPath()`
  - Constant Field Values

### PATH_RIGHT

public static final int PATH_RIGHT
`path`: succeeding glyphs are placed to the left of the current glyph.

See Also:
  - `getPath()`
  - Constant Field Values

### PATH_UP

public static final int PATH_UP
`path`: succeeding glyphs are placed above the current glyph.

See Also:
  - `getPath()`
  - Constant Field Values

### PATH_DOWN

public static final int PATH_DOWN
`path`: succeeding glyphs are placed below the current glyph.

See Also:
  - `getPath()`
  - Constant Field Values

## Constructor Details

### Text3D

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

font 3D : null
string : null
position : (0,0,0)
alignment : ALIGN_FIRST
path : PATH_RIGHT
character spacing : 0.0

### Text3D

public Text3D(Font3D font3D)
Creates a Text3D object with the given Font3D object.

See Also:
  - `Font3D`

### Text3D

public Text3D(Font3D font3D, String string)
Creates a Text3D object given a Font3D object and a string. The string is converted into 3D glyphs. The first glyph from the string is placed at (0.0, 0.0, 0.0) and succeeding glyphs are placed to the right of the initial glyph.

See Also:
  - `Font3D`

### Text3D

public Text3D(Font3D font3D, String string, javax.vecmath.Point3f position)
Creates a Text3D object given a Font3D, a string and position. The string is converted into 3D glyphs. The first glyph from the string is placed at position `position` and succeeding glyphs are placed to the right of the initial glyph.

See Also:
  - `Font3D`

### Text3D

public Text3D(Font3D font3D, String string, javax.vecmath.Point3f position, int alignment, int path)
Creates a Text3D object given a Font3D, string, position, alignment and path along which string is to be placed. The string is converted into 3D glyphs. The placement of the glyphs with respect to the `position` position depends on the alignment parameter and the path parameter.

See Also:
  - `Font3D`

## Method Details

### getFont3D

public Font3D getFont3D()
Returns the Font3D objects used by this Text3D NodeComponent object.

Returns:
  the Font3D object of this Text3D node - null if no Font3D has been associated with this node.
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setFont3D

public void setFont3D(Font3D font3d)
Sets the Font3D object used by this Text3D NodeComponent object.

Parameters:
  `font3d` - the Font3D object to associate with this Text3D node.
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getString

public String getString()
Copies the character string used in the construction of the Text3D node into the supplied parameter.

Returns:
  a copy of the String object in this Text3D node.
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setString

public void setString(String string)
Copies the character string from the supplied parameter into the Text3D node.

Parameters:
  `string` - the String object to recieve the Text3D node's string.
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getPosition

public void getPosition(javax.vecmath.Point3f position)
Copies the node's `position` field into the supplied parameter. The `position` is used to determine the initial placement of the Text3D string. The position, combined with the path and alignment control how the text is displayed.

Parameters:
  `position` - the point to position the text.
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
See Also:
  - `getAlignment()`
  - `getPath()`

### setPosition

public void setPosition(javax.vecmath.Point3f position)
Sets the node's `position` field to the supplied parameter. The `position` is used to determine the initial placement of the Text3D string. The position, combined with the path and alignment control how the text is displayed.

Parameters:
  `position` - the point to position the text.
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
See Also:
  - `getAlignment()`
  - `getPath()`

### getAlignment

public int getAlignment()
Retrieves the text alignment policy for this Text3D NodeComponent object. The `alignment` is used to specify how glyphs in the string are placed in relation to the `position` field. Valid values for this field are:

- ALIGN_CENTER - the center of the string is placed on the `position` point.
- ALIGN_FIRST - the first character of the string is placed on the `position` point.
- ALIGN_LAST - the last character of the string is placed on the `position` point.

The default value of this field is `ALIGN_FIRST`.

Returns:
  the current alingment policy for this node.
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
See Also:
  - `getPosition(javax.vecmath.Point3f)`

### setAlignment

public void setAlignment(int alignment)
Sets the text alignment policy for this Text3D NodeComponent object. The `alignment` is used to specify how glyphs in the string are placed in relation to the `position` field. Valid values for this field are:

- ALIGN_CENTER - the center of the string is placed on the `position` point.
- ALIGN_FIRST - the first character of the string is placed on the `position` point.
- ALIGN_LAST - the last character of the string is placed on the `position` point.

The default value of this field is `ALIGN_FIRST`.

Parameters:
  `alignment` - specifies how glyphs in the string are placed in relation to the position field
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
See Also:
  - `getPosition(javax.vecmath.Point3f)`

### getPath

public int getPath()
Retrieves the node's `path` field. This field is used to specify how succeeding glyphs in the string are placed in relation to the previous glyph. Valid values for this field are:

- PATH_LEFT: - succeeding glyphs are placed to the left of the current glyph.
- PATH_RIGHT: - succeeding glyphs are placed to the right of the current glyph.
- PATH_UP: - succeeding glyphs are placed above the current glyph.
- PATH_DOWN: - succeeding glyphs are placed below the current glyph.

The default value of this field is `PATH_RIGHT`.

Returns:
  the current alingment policy for this node.
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setPath

public void setPath(int path)
Sets the node's `path` field. This field is used to specify how succeeding glyphs in the string are placed in relation to the previous glyph. Valid values for this field are:

- PATH_LEFT - succeeding glyphs are placed to the left of the current glyph.
- PATH_RIGHT - succeeding glyphs are placed to the right of the current glyph.
- PATH_UP - succeeding glyphs are placed above the current glyph.
- PATH_DOWN - succeeding glyphs are placed below the current glyph.

The default value of this field is `PATH_RIGHT`.

Parameters:
  `path` - the value to set the path to
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### getBoundingBox

public void getBoundingBox(BoundingBox bounds)
Retrieves the 3D bounding box that encloses this Text3D object.

Parameters:
  `bounds` - the object to copy the bounding information to.
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
See Also:
  - `BoundingBox`

### getCharacterSpacing

public float getCharacterSpacing()
Retrieves the character spacing used to construct the Text3D string. This spacing is in addition to the regular spacing between glyphs as defined in the Font object. 1.0 in this space is measured as the width of the largest glyph in the 2D Font. The default value is 0.0.

Returns:
  the current character spacing value
Throws:
  `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

### setCharacterSpacing

public void setCharacterSpacing(float characterSpacing)
Sets the character spacing used when constructing the Text3D string. This spacing is in addition to the regular spacing between glyphs as defined in the Font object. 1.0 in this space is measured as the width of the largest glyph in the 2D Font. The default value is 0.0.

Parameters:
  `characterSpacing` - the new character spacing value
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`