diva.canvas
Class TransformContext

java.lang.Object
  extended by diva.canvas.TransformContext

public class TransformContext
extends Object

A transform context defines a transformed coordinate system. Each transform context is associated with a component in the display tree. This class provides the support for most of the transform-related operations on the display tree.

Version:
$Revision: 1.12 $
Author:
John Reekie

Constructor Summary
TransformContext(CanvasComponent component)
          Create a transform context associated with the given display component.
 
Method Summary
 void checkCacheValid(TransformContext ancestor)
          Check transform cache validity.
 void concatenate(AffineTransform at)
          Concatenate this transform context with the given tranform.
 CanvasComponent getComponent()
          Get the component that this context is associated with.
 AffineTransform getInverseTransform()
          Get the transform from parent coordinates into local coordinates.
 TransformContext getParent()
          Get the parent transform context of this one, or null if this context is at the root of the transform tree.
 AffineTransform getScreenTransform()
          Get the transform from local coordinates into screen coordinates.
 AffineTransform getTransform()
          Get the transform of this context.
 AffineTransform getTransform(TransformContext context)
          Get the transform of this context, relative to the given context.
 int getVersion()
          Get the version number of the transfom context.
 void invalidateCache()
          Notify that cached data based on the transform is now invalid.
 boolean isCacheValid()
          Test if the cache is valid.
 void pop(Graphics2D g)
          Pop this transform off the graphics stack.
 void preConcatenate(AffineTransform at)
          Pre-concatenate this transform context with the given tranform.
 void push(Graphics2D g)
          Push this transform onto the graphics stack.
 void setTransform(AffineTransform at)
          Set the transform that maps local coordinates into the parent's coordinates.
 void translate(double x, double y)
          Translate this context the given distance.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TransformContext

public TransformContext(CanvasComponent component)
Create a transform context associated with the given display component.

Method Detail

checkCacheValid

public void checkCacheValid(TransformContext ancestor)
Check transform cache validity. The argument is an ancestor context of this context. If the ancestor is not valid, then all of the contexts from this one up to the ancestor are marked invalid.


concatenate

public void concatenate(AffineTransform at)
Concatenate this transform context with the given tranform.


getComponent

public CanvasComponent getComponent()
Get the component that this context is associated with. The component is set in the constructor and cannot be changed.


getInverseTransform

public AffineTransform getInverseTransform()
Get the transform from parent coordinates into local coordinates.


getParent

public TransformContext getParent()
Get the parent transform context of this one, or null if this context is at the root of the transform tree.


getScreenTransform

public AffineTransform getScreenTransform()
Get the transform from local coordinates into screen coordinates.


getTransform

public AffineTransform getTransform()
Get the transform of this context. This is the transform from this context into the parent's context.


getTransform

public AffineTransform getTransform(TransformContext context)
Get the transform of this context, relative to the given context. This is the transform from this context into the given context, which must enclose this one.


getVersion

public int getVersion()
Get the version number of the transfom context. The version number is incremented whenever the transform changes, so can be used by client components to figure out when to update cached data based upon the transform.


invalidateCache

public void invalidateCache()
Notify that cached data based on the transform is now invalid. Increment the version number so that clients can use it to tell if they need to update data based on the transform.


isCacheValid

public boolean isCacheValid()
Test if the cache is valid.


push

public void push(Graphics2D g)
Push this transform onto the graphics stack.


pop

public void pop(Graphics2D g)
Pop this transform off the graphics stack.


preConcatenate

public void preConcatenate(AffineTransform at)
Pre-concatenate this transform context with the given tranform.


setTransform

public void setTransform(AffineTransform at)
Set the transform that maps local coordinates into the parent's coordinates. If there is no parent, the "parent" is taken to be the screen. An exception will be thrown if the transform is null. This method invalidates any cached transforms. Note that the transform may be remembered by this context, so the caller must make sure that it will not be subsequently modified.


translate

public void translate(double x,
                      double y)
Translate this context the given distance.



Copyright © 2015 Central Laboratory of the Research Councils. All Rights Reserved.