com.tensegrity.graphics.primitive2D
Class Line2D

java.lang.Object
  extended bycom.tensegrity.graphics.AbstractPrimitive
      extended bycom.tensegrity.graphics.primitive2D.Line2D
All Implemented Interfaces:
Attributable, AttributableOnSet, BaseInteractable, InteractableLine, Primitive

public class Line2D
extends AbstractPrimitive
implements InteractableLine

An object of class Line2D represents a 2-dimensional line segment.

Version:
$Id: Line2D.java,v 1.72 2006/03/21 14:26:11 MichaelKegel Exp $
Author:
MichaelKegel

Field Summary
static int LINE_CUBIC
          constant that tells about the degree of the line segment
static int LINE_LINEAR
          constant that tells about the degree of the line segment
 
Fields inherited from class com.tensegrity.graphics.AbstractPrimitive
attributableOnSetListener, doAttributableEvents, infovalueregistry, interactionDescriptor, selected
 
Fields inherited from interface com.tensegrity.generic.attribute.AttributableOnSet
TREE_SUBSET_POSTFIX
 
Constructor Summary
Line2D()
          Creates with a size and width of 1, a pixel.
Line2D(int x1, int y1, int x2, int y2)
          Constructor for Line2D specifying the beginning and ending coordinate.
Line2D(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, int transformation)
          Constructor for Line2D specifying the beginning and ending coordinate as well as the reference coordinates for the beginning and the ending coordinate and create a cubic line.
Line2D(Line2D line)
          Copy constructor for Line2D.
 
Method Summary
 void applyState(PrimitiveState state)
           
 Coordinate[] calculateCoordinates(InteractionInfo interactionInfo)
           
 Primitive deepCopy()
          An implementation of this method is responsible for returning a deep- copy of the Primitive instance
 int getActionMode(InteractionItem item)
           
 Attribute getAttribute(java.lang.String name)
          Returns the attribute with the given name or null if there is no Attribute with the given name.
 AttributeSet getAttributes()
          Returns an AttributeSet consisting of all attributes of this AttributableOnSet.
 AttributeSet getAttributesTree()
          Returns an AttributeSet containing all Attributes of this AttributableOnSet in a treelike structure.
 Boundary getBoundingBox()
          Returns the bounding box of the BaseInteractable.
 Coordinate[] getCoordinates()
          Returns the coordinates of the line with respect to the current model in the following order: degreetypeorder LINE_LINEAR - 1. index ==> starting coordinate
2. index ==> ending coordinate LINE_CUBIC CUBIC_BEZIER 0. index ==> starting coordinate
1. index ==> ending coordinate
2. index ==> starting reference coordinate
3. index ==> ending reference coordinate LINE_CUBIC CUBIC_CATMULL_ROM 0. index ==> starting coordinate
1. index ==> ending coordinate
2. index ==> starting reference coordinate
3. index ==> ending reference coordinate
 int getDegree()
          Returns the bias of this line or, in other words, the degree of the formula the LineModel of this line uses.
 Coordinate getEndingCoordinate()
          Returns the current ending Coordinate of the line.
 Illustrator getIllustrator(Transform2D xform_context)
          Returns the Primitives illustrator object.
 MarkerFormat getMarkerBegin()
          Returns the format of the beginning marker.
 MarkerFormat getMarkerEnd()
          Returns the format of the end marker.
 RenderingData getRenderingData(Transform2D xform_context)
          Returns a RenderingData instance, which are used by a Renderer implementation to render a Primitive.
 Coordinate getStartingCoordinate()
          Returns the current starting Coordinate of the line.
 PrimitiveState getState()
           
 int getType()
          Returns the type of this line.
 int getWeight()
          Returns the thickness of this line.
protected  InteractionDescriptor internalCreateInteractionDescriptor()
          This method should return an InteractionDescriptor that defines the interaction capabilities of a certain Primitive.
 boolean isManipulable()
          Returns a boolean that indicates whether the InteractableLine is manipulable or not.
 void setAttributes(AttributeSet attributes)
          Searches within the AttributeSet given by attributes for attributes that have the same name as the attributes of this AttributableOnSet holds.
 void setAttributesTree(AttributeSet attributes)
          Performs the same operation as the setAttributes(com.tensegrity.generic.attribute.AttributeSet) method with the difference that the AttributeSet given to this method must provide the treelike structure mentioned in the documentation of the getAttributesTree().
 void setAttributeValue(java.lang.String name, java.lang.Object value)
          Sets the value of the attribute with the name to the given value.
 void setCoordinates(Coordinate[] coordinates)
          Sets the coordinates of the line to the Coordinate given by coordinates.
 void setEndingCoordinate(Coordinate coordinate)
          Sets the ending Coordinate of the line to the value given by coordinate.
 void setManipulable(boolean manipulable)
          Sets the state of the ability to manipulate the InteractableLine to the value given by manipulable.
 void setMarkerBegin(MarkerFormat marker)
          Sets the format of the beginning marker to the given one.
 void setMarkerEnd(MarkerFormat marker)
          Sets the format of the end marker to the given one.
 void setStartEndCoordinate(Coordinate coordinateStart, Coordinate coordinateEnd)
          Sets the starting and the ending Coordinate of the line to the values given by coordinateStart and coordinateEnd
 void setStartingCoordinate(Coordinate coordinate)
          Sets the starting Coordinate of the line to the value given by coordinate.
 void setStroke(StrokeFormat stroke)
          Sets a StrokeFormat for the Primitive.
 void setWeight(int weight)
          Sets the weight of this line.
 java.lang.String toString()
           
 
Methods inherited from class com.tensegrity.graphics.AbstractPrimitive
addAttributableOnSetListener, addInfoValue, addOrSetInfoValue, areAttributableEventsEnabled, disableAttributableEvents, enableAttributableEvents, fireAttributableOnSetChangedEvent, fireAttributableOnSetChangedEvent, getAttributeType, getAttributeValue, getFont, getInfoValue, getInteractionDescriptor, getMoveItem, getPaint, getStroke, getTransform, hasInfoValue, hits, internalDeepCopyInfoValues, internalEnableSelection, internalSelect, internalSetFont, internalSetPaint, internalSetSelected, internalSetStroke, internalSetStroke, isMovable, isSelectable, isSelected, mouseClick, mouseDown, mouseEnter, mouseExit, mouseUp, postActing, preActing, raiseAttributableEvents, removeAttributableOnSetListener, removeInfoValue, select, setAttribute, setFontFormat, setInfoValue, setMovable, setPaint, setSelectable, setSelected, setTransform, startAction, stopAction
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.tensegrity.graphics.interaction.BaseInteractable
getInteractionDescriptor, getMoveItem, hits, internalEnableSelection, internalSelect, internalSetSelected, isMovable, isSelectable, isSelected, mouseClick, mouseDown, mouseEnter, mouseExit, mouseUp, postActing, preActing, select, setMovable, setSelectable, setSelected, startAction, stopAction
 

Field Detail

LINE_LINEAR

public static final int LINE_LINEAR
constant that tells about the degree of the line segment

See Also:
Constant Field Values

LINE_CUBIC

public static final int LINE_CUBIC
constant that tells about the degree of the line segment

See Also:
Constant Field Values
Constructor Detail

Line2D

public Line2D()
Creates with a size and width of 1, a pixel.


Line2D

public Line2D(int x1,
              int y1,
              int x2,
              int y2)
Constructor for Line2D specifying the beginning and ending coordinate.

Parameters:
x1 - the x-coordinate of the beginning coordinate
y1 - the y-coordinate of the beginning coordinate
x2 - the x-coordinate of the ending coordinate
y2 - the y-coordinate of the ending coordinate

Line2D

public Line2D(int x1,
              int y1,
              int x2,
              int y2,
              int x3,
              int y3,
              int x4,
              int y4,
              int transformation)
Constructor for Line2D specifying the beginning and ending coordinate as well as the reference coordinates for the beginning and the ending coordinate and create a cubic line. The transformation type for the cubic line is given by transformation.

Parameters:
x1 - the x-coordinate of the beginning coordinate
y1 - the y-coordinate of the beginning coordinate
x2 - the x-coordinate of the ending coordinate
y2 - the y-coordinate of the ending coordinate
x3 - the x-coordinate of the reference coordinate for the beginning coordinate
y3 - the y-coordinate of the reference coordinate for the beginning coordinate
x4 - the x-coordinate of the reference coordinate for the ending coordinate
y4 - the y-coordinate of the reference coordinate for the ending coordinate
transformation - the transformation to use for the cubic line model

Line2D

public Line2D(Line2D line)
Copy constructor for Line2D.

Parameters:
line - the Line2D to copy.
Method Detail

getStartingCoordinate

public Coordinate getStartingCoordinate()
Returns the current starting Coordinate of the line.

Returns:
Coordinate the current starting coordinate

setStartingCoordinate

public void setStartingCoordinate(Coordinate coordinate)
Sets the starting Coordinate of the line to the value given by coordinate.

Parameters:
coordinate - the new starting Coordinate of the line

getEndingCoordinate

public Coordinate getEndingCoordinate()
Returns the current ending Coordinate of the line.

Returns:
Coordinate the current ending coordinate

setEndingCoordinate

public void setEndingCoordinate(Coordinate coordinate)
Sets the ending Coordinate of the line to the value given by coordinate.

Parameters:
coordinate - the new ending Coordinate of the line

setStartEndCoordinate

public void setStartEndCoordinate(Coordinate coordinateStart,
                                  Coordinate coordinateEnd)
Sets the starting and the ending Coordinate of the line to the values given by coordinateStart and coordinateEnd

Parameters:
coordinateStart - the new starting Coordinate of the line
coordinateEnd - the new ending Coordinate of the line

Find more information in the class documentation


getCoordinates

public Coordinate[] getCoordinates()
Returns the coordinates of the line with respect to the current model in the following order:
degreetypeorder
LINE_LINEAR - 1. index ==> starting coordinate
2. index ==> ending coordinate
LINE_CUBIC CUBIC_BEZIER 0. index ==> starting coordinate
1. index ==> ending coordinate
2. index ==> starting reference coordinate
3. index ==> ending reference coordinate
LINE_CUBIC CUBIC_CATMULL_ROM 0. index ==> starting coordinate
1. index ==> ending coordinate
2. index ==> starting reference coordinate
3. index ==> ending reference coordinate

Returns:
Coordinate[] the coordinates of the line

setCoordinates

public void setCoordinates(Coordinate[] coordinates)
Sets the coordinates of the line to the Coordinate given by coordinates.
The length of the array must be at least two for linear lines and four for cubic lines. The Coordinates in the array are expected in the following order:
degreetypeorder
LINE_LINEAR - 1. index ==> starting coordinate
2. index ==> ending coordinate
LINE_CUBIC CUBIC_BEZIER 0. index ==> starting coordinate
1. index ==> ending coordinate
2. index ==> starting reference coordinate
3. index ==> ending reference coordinate
LINE_CUBIC CUBIC_CATMULL_ROM 0. index ==> starting coordinate
1. index ==> ending coordinate
2. index ==> starting reference coordinate
3. index ==> ending reference coordinate

Parameters:
coordinates - the coordinate to set

getWeight

public int getWeight()
Returns the thickness of this line.

Returns:
the thickness of this line.

setWeight

public void setWeight(int weight)
Sets the weight of this line.

Parameters:
weight - the new weight of this line.

Find more information in the class documentation


getDegree

public int getDegree()
Returns the bias of this line or, in other words, the degree of the formula the LineModel of this line uses. For instance the degree of a straight line is 1, for a quadric line it is 2 and the degree for a cubic line is 3 and so forth.

Returns:
the bias of this line.

Find more information in the class documentation


getType

public int getType()
Returns the type of this line. Potential values are LINEAR and CUBIC as defined by this class.

Returns:
the type of this line.

Find more information in the class documentation


getMarkerBegin

public MarkerFormat getMarkerBegin()
Returns the format of the beginning marker.

Returns:
the format of the beginning marker.

setMarkerBegin

public void setMarkerBegin(MarkerFormat marker)
Sets the format of the beginning marker to the given one.

Parameters:
marker - the new format of the beginning marker.

Find more information in the class documentation


getMarkerEnd

public MarkerFormat getMarkerEnd()
Returns the format of the end marker.

Returns:
the format of the end marker.

setMarkerEnd

public void setMarkerEnd(MarkerFormat marker)
Sets the format of the end marker to the given one.

Parameters:
marker - the new format of the end marker.

Find more information in the class documentation


setStroke

public void setStroke(StrokeFormat stroke)
Description copied from interface: Primitive
Sets a StrokeFormat for the Primitive.

Specified by:
setStroke in interface Primitive
Parameters:
stroke - the StrokeFormat to use

getBoundingBox

public Boundary getBoundingBox()
Description copied from interface: BaseInteractable
Returns the bounding box of the BaseInteractable.

Specified by:
getBoundingBox in interface BaseInteractable
Returns:
Boundary the bounding box of the BaseInteractable

getState

public PrimitiveState getState()
Specified by:
getState in interface Primitive

applyState

public void applyState(PrimitiveState state)
                throws PrimitiveStateNotApplicableException
Specified by:
applyState in interface Primitive
Throws:
PrimitiveStateNotApplicableException

getIllustrator

public Illustrator getIllustrator(Transform2D xform_context)
Description copied from interface: Primitive
Returns the Primitives illustrator object. To get more informations about the illustrator object see the class above or the documentation of the Illustrator class.

Specified by:
getIllustrator in interface Primitive
Parameters:
xform_context - the transformation of the context the Primitive lies within.
Returns:
Illustrator the illustrator for outputting the Primitive.

getRenderingData

public RenderingData getRenderingData(Transform2D xform_context)
Description copied from interface: Primitive
Returns a RenderingData instance, which are used by a Renderer implementation to render a Primitive.
To get more informations about the RenderingData object see the class documentation above or the documentation of the RenderingData class.
To get more information about the Renderer technique see the class documentation above or the documentation of the Renderer class.

Specified by:
getRenderingData in interface Primitive
Overrides:
getRenderingData in class AbstractPrimitive

deepCopy

public Primitive deepCopy()
Description copied from interface: Primitive
An implementation of this method is responsible for returning a deep- copy of the Primitive instance

Specified by:
deepCopy in interface Primitive
Returns:
a deep copy of the Primitive.

isManipulable

public boolean isManipulable()
Description copied from interface: InteractableLine
Returns a boolean that indicates whether the InteractableLine is manipulable or not. Manipulable means in this case that a single point of the line can be manipulated.

Specified by:
isManipulable in interface InteractableLine
Returns:
boolean flag that indicates if the InteractableLine is manipulable or not.

setManipulable

public void setManipulable(boolean manipulable)
Description copied from interface: InteractableLine
Sets the state of the ability to manipulate the InteractableLine to the value given by manipulable.

Specified by:
setManipulable in interface InteractableLine
Parameters:
manipulable - the new state for the ability to manipulate the InteractableLine

calculateCoordinates

public Coordinate[] calculateCoordinates(InteractionInfo interactionInfo)
Specified by:
calculateCoordinates in interface InteractableLine

getActionMode

public int getActionMode(InteractionItem item)
Specified by:
getActionMode in interface InteractableLine

setAttributeValue

public void setAttributeValue(java.lang.String name,
                              java.lang.Object value)
                       throws IllegalValueException,
                              ConstraintViolationException
Description copied from interface: Attributable
Sets the value of the attribute with the name to the given value.
Notice: If the specific implementor of the Attributable interface doesn't support an Attribute with the name given by name, the attribute given through name and value is not handled nor created by Attributable.

Specified by:
setAttributeValue in interface Attributable
Overrides:
setAttributeValue in class AbstractPrimitive
Throws:
IllegalValueException
ConstraintViolationException

getAttribute

public Attribute getAttribute(java.lang.String name)
Description copied from interface: Attributable
Returns the attribute with the given name or null if there is no Attribute with the given name.

Specified by:
getAttribute in interface Attributable
Overrides:
getAttribute in class AbstractPrimitive

getAttributes

public AttributeSet getAttributes()
Description copied from interface: AttributableOnSet
Returns an AttributeSet consisting of all attributes of this AttributableOnSet.

Specified by:
getAttributes in interface AttributableOnSet
Returns:
AttributeSet an AttributeSet with all attributes.

setAttributes

public void setAttributes(AttributeSet attributes)
Description copied from interface: AttributableOnSet
Searches within the AttributeSet given by attributes for attributes that have the same name as the attributes of this AttributableOnSet holds. The value of every attribute that has the same name is used as the new value for the corresponding attribute of this AttributableOnSet. An Attribute within the given AttributeSet that is not an attribute of the object that implements the AttributableOnSet interface is not handled by nor added to the specific implementor of the AttributableOnSet interface.

Specified by:
setAttributes in interface AttributableOnSet
Parameters:
attributes - the AttributeSet consisting of the attributes whose values to set.

getAttributesTree

public AttributeSet getAttributesTree()
Description copied from interface: AttributableOnSet
Returns an AttributeSet containing all Attributes of this AttributableOnSet in a treelike structure.
Treelike means that each attribute can have a subset that contains subsequent Attributes for an Attribute of this AttributableOnSet.
Since an Attribute can only have one value (in this case an object or the Attributes for an object) the subsequent attributes are plugged into the returned AttributeSet as a new Attribute with the same name and the AttributableOnSet.TREE_SUBSET_POSTFIX.

Specified by:
getAttributesTree in interface AttributableOnSet
Returns:
AttributeSet an AttributeSet with the attributes in a treelike structure

setAttributesTree

public void setAttributesTree(AttributeSet attributes)
Description copied from interface: AttributableOnSet
Performs the same operation as the AttributableOnSet.setAttributes(com.tensegrity.generic.attribute.AttributeSet) method with the difference that the AttributeSet given to this method must provide the treelike structure mentioned in the documentation of the AttributableOnSet.getAttributesTree().

Specified by:
setAttributesTree in interface AttributableOnSet
Parameters:
attributes - the AttributeSet containing the attributes whose values to set.

internalCreateInteractionDescriptor

protected InteractionDescriptor internalCreateInteractionDescriptor()
Description copied from class: AbstractPrimitive
This method should return an InteractionDescriptor that defines the interaction capabilities of a certain Primitive. Since the InteractionDescriptor varies for different kinds of primitives this method is declared as abstract and must be implemented for each Primitive that is based on the AbstractPrimitive class.
NOTICE: The return value must not be null.

Specified by:
internalCreateInteractionDescriptor in class AbstractPrimitive
Returns:
InteractionDescriptor the InteractionDescriptor for the certain Primitive instance

toString

public java.lang.String toString()


Copyright © 2005 Tensegrity Software GmbH. All Rights Reserved. Date of creation: 09.06.2006.