artisynth.core.probes
Class CutPlaneProbe

java.lang.Object
  extended by artisynth.core.modelbase.ModelComponentBase
      extended by artisynth.core.modelbase.ModelAgentBase
          extended by artisynth.core.probes.Probe
              extended by artisynth.core.probes.OutputProbe
                  extended by artisynth.core.probes.CutPlaneProbe
All Implemented Interfaces:
HasState, ModelAgent, ModelComponent, RenderableComponent, java.lang.Cloneable, HasProperties, HierarchyNode, Dragger3dListener, GLRenderable, GLSelectable, HasRenderProps, Renderable, Scannable
Direct Known Subclasses:
FemDisplayProbe, MeshIntersectingProbe

public abstract class CutPlaneProbe
extends OutputProbe
implements RenderableComponent, Dragger3dListener

Basic plane probe that can display information as it cuts through a model

Author:
Antonio

Nested Class Summary
 
Nested classes/interfaces inherited from interface artisynth.core.modelbase.ModelComponent
ModelComponent.NavpanelVisibility
 
Field Summary
static PropertyList myProps
           
 
Fields inherited from class artisynth.core.probes.Probe
useOldSaveMethod, writeStartStopTimeInSeconds
 
Fields inherited from class artisynth.core.modelbase.ModelComponentBase
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames
 
Fields inherited from interface maspack.render.GLRenderable
TRANSLUCENT, TWO_DIMENSIONAL
 
Constructor Summary
CutPlaneProbe()
           
CutPlaneProbe(Point3d center, AxisAngle orientation, Vector2d size)
          Creates a basic plane surface which can display information
 
Method Summary
 void apply(double t)
          Called when the probe is being applied to a model
 void centerInViewer()
          Centre the probe in the middle of the viewer
 RenderProps createRenderProps()
          Factory method to create render properties appropriate to this object.
 void draggerAdded(Dragger3dEvent e)
           
 void draggerBegin(Dragger3dEvent e)
           
 void draggerEnd(Dragger3dEvent e)
           
 void draggerMove(Dragger3dEvent e)
           
 void draggerRemoved(Dragger3dEvent e)
           
 PropertyList getAllPropertyInfo()
          Returns a list giving static information about all properties exported by this object.
 GLViewer.DraggerType getDragger()
          Returns the dragger type
 AxisAngle getOrientation()
          Gets the orientation of the display
 Plane getPlane()
          Gets the plane along which the display lies
 void getPlane(Plane plane)
          Gets the plane along which the display lies
 Point3d getPosition()
          Gets the 3D position of the centre of the display
 int getRenderHints()
          Returns a bit code giving rendering hints about this renderable.
 RenderProps getRenderProps()
          Returns the render properities for this object.
 Vector2d getResolution()
          Gets the resolution of the display, integers (nx,ny) corresponding to the number of divisions along the x and y axes
 void getSelection(java.util.LinkedList<java.lang.Object> list, int qid)
          Append to list the component (or components) associated with the qid-th selection query issued by this component's render method.
 Vector2d getSize()
          Gets the size of the display grid
 void initialize(double t)
           
 boolean isSelectable()
          Returns true if this object is in fact selectable.
 int numSelectionQueriesNeeded()
          If this selectable manages its own selection (by issuing selection queries within its render method), then this method should return the maximum number of selection queries that will be required.
 void prerender(RenderList list)
          Prepare for rendering, and potentially add itself to a list to be drawn by a GLRenderer.
 void render(GLRenderer renderer, int flags)
          Render this object using Open GL via the JOGL.
 void resetInViewer()
          Resets to a default viewer centre orientation
 void setDragger(GLViewer.DraggerType type)
          Sets the dragger type for manipulating the display
 void setGridToWorld(RigidTransform3d X)
          Sets the transform between the display grid and World
 void setOrientation(AxisAngle axisAng)
          Sets the orientation of the display
 void setPlane(Plane plane)
          Sets the plane along which the display lies
 void setPlane(Vector3d n, double offset)
          Sets the plane along which the display lies
 void setPosition(Point3d pos)
          Sets the 3D position of the centre of the display
 void setRenderProps(RenderProps props)
          Assigns a new set of render properties to this object.
 void setResolution(Vector2d res)
          Sets the resolution fo teh display, integers (nx, ny) corresponding to the number of divisions along the x and y axes.
 void setSize(Vector2d size)
          Sets the size of the display grid
 void transformGeometry(AffineTransform3dBase X)
           
 void transformGeometry(AffineTransform3dBase X, TransformableGeometry topObject, int flags)
           
 void updateBounds(Point3d pmin, Point3d pmax)
          Update the minimum and maximum points for this object.
 
Methods inherited from class artisynth.core.probes.Probe
createState, getAttachedFile, getAttachedFileName, getChildren, getDefaultScale, getDefaultStartTime, getDefaultStopTime, getDefaultUpdateInterval, getInitialState, getProperty, getScale, getStartTime, getState, getStopTime, getTimelineTime, getTrack, getUpdateInterval, getVirtualTime, hasAttachedFile, hasChildren, hasState, isActive, isAttachedFileRelative, isCloneable, isEventTime, isInput, isPrintable, isScalable, isSettable, load, nextEventTime, print, save, scan, setActive, setAttachedFileName, setData, setName, setScalable, setScale, setStartStopTimes, setStartTime, setState, setStopTime, setTrack, setUpdateInterval
 
Methods inherited from class artisynth.core.modelbase.ModelAgentBase
dispose, finalize, getModel, setModel, setModelFromComponent, write
 
Methods inherited from class artisynth.core.modelbase.ModelComponentBase
checkFlag, checkName, checkNameUniqueness, clearFlag, clone, connectToHierarchy, copy, createTempFlag, disconnectFromHierarchy, getGrandParent, getHardReferences, getName, getNameRange, getNavpanelVisibility, getNavpanelVisibility, getNumber, getParent, getSoftReferences, isFixed, isMarked, isSelected, isWritable, makeValidName, makeValidName, notifyParentOfChange, postscan, printReferences, recursivelyContained, recursivelyContains, removeTempFlag, setFixed, setFlag, setMarked, setNavpanelVisibility, setNavpanelVisibility, setNumber, setParent, setSelected, updateReferences
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface artisynth.core.modelbase.ModelComponent
connectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, hasState, isFixed, isMarked, isSelected, notifyParentOfChange, postscan, scan, setFixed, setMarked, setName, setNumber, setParent, setSelected, updateReferences
 
Methods inherited from interface maspack.properties.HasProperties
getProperty
 
Methods inherited from interface maspack.properties.HierarchyNode
getChildren, hasChildren
 
Methods inherited from interface maspack.util.Scannable
isWritable, write
 

Field Detail

myProps

public static PropertyList myProps
Constructor Detail

CutPlaneProbe

public CutPlaneProbe()

CutPlaneProbe

public CutPlaneProbe(Point3d center,
                     AxisAngle orientation,
                     Vector2d size)
Creates a basic plane surface which can display information

Parameters:
center - center of plane
orientation - orientation of plane (originally on x-y)
size - 2D size of plane
Method Detail

getAllPropertyInfo

public PropertyList getAllPropertyInfo()
Description copied from interface: HasProperties
Returns a list giving static information about all properties exported by this object.

Specified by:
getAllPropertyInfo in interface HasProperties
Overrides:
getAllPropertyInfo in class Probe
Returns:
static information for all exported properties

initialize

public void initialize(double t)
Specified by:
initialize in interface ModelAgent
Overrides:
initialize in class ModelAgentBase

apply

public void apply(double t)
Description copied from class: Probe
Called when the probe is being applied to a model

Overrides:
apply in class OutputProbe

prerender

public void prerender(RenderList list)
Description copied from interface: GLRenderable
Prepare for rendering, and potentially add itself to a list to be drawn by a GLRenderer.

Specified by:
prerender in interface GLRenderable

render

public void render(GLRenderer renderer,
                   int flags)
Description copied from interface: GLRenderable
Render this object using Open GL via the JOGL.

Specified by:
render in interface GLRenderable
Parameters:
renderer - renderer object which is used to perform the rendering. Provides pointers to GL and GLU, along with helper functions.
flags - supplies flags that may be used to control different aspects of the rendering. Flags are defined in GLRenderer and currently include GLRenderer.SELECTED, GLRenderer.VERTEX_COLORING, GLRenderer.HSV_COLOR_INTERPOLATION, GLRenderer.SORT_FACES, and GLRenderer.CLEAR_MESH_DISPLAY_LISTS.

getPosition

public Point3d getPosition()
Gets the 3D position of the centre of the display


setPosition

public void setPosition(Point3d pos)
Sets the 3D position of the centre of the display


getOrientation

public AxisAngle getOrientation()
Gets the orientation of the display


setOrientation

public void setOrientation(AxisAngle axisAng)
Sets the orientation of the display


setGridToWorld

public void setGridToWorld(RigidTransform3d X)
Sets the transform between the display grid and World


getSize

public Vector2d getSize()
Gets the size of the display grid


setSize

public void setSize(Vector2d size)
Sets the size of the display grid


getResolution

public Vector2d getResolution()
Gets the resolution of the display, integers (nx,ny) corresponding to the number of divisions along the x and y axes


setResolution

public void setResolution(Vector2d res)
Sets the resolution fo teh display, integers (nx, ny) corresponding to the number of divisions along the x and y axes. This triggers a rebuild of the mesh.


createRenderProps

public RenderProps createRenderProps()
Description copied from interface: HasRenderProps
Factory method to create render properties appropriate to this object.

Specified by:
createRenderProps in interface HasRenderProps
Returns:
new render properties for this object

getRenderProps

public RenderProps getRenderProps()
Description copied from interface: HasRenderProps
Returns the render properities for this object. If no render properties are assigned, this routines returns null.

Specified by:
getRenderProps in interface HasRenderProps
Returns:
current render properties for this object

setRenderProps

public void setRenderProps(RenderProps props)
Description copied from interface: HasRenderProps
Assigns a new set of render properties to this object. An argument of null will remove render properties from this object.

Specified by:
setRenderProps in interface HasRenderProps
Parameters:
props - new render properties for this object

transformGeometry

public void transformGeometry(AffineTransform3dBase X,
                              TransformableGeometry topObject,
                              int flags)

transformGeometry

public void transformGeometry(AffineTransform3dBase X)

isSelectable

public boolean isSelectable()
Description copied from interface: GLSelectable
Returns true if this object is in fact selectable.

Specified by:
isSelectable in interface GLSelectable
Returns:
true if this object is selectable

numSelectionQueriesNeeded

public int numSelectionQueriesNeeded()
Description copied from interface: GLSelectable
If this selectable manages its own selection (by issuing selection queries within its render method), then this method should return the maximum number of selection queries that will be required. Otherwise, this method should return -1.

Specified by:
numSelectionQueriesNeeded in interface GLSelectable
Returns:
maximum number of selection queries needed by this component, or -1 if this component does not manage its own selection.

getSelection

public void getSelection(java.util.LinkedList<java.lang.Object> list,
                         int qid)
Description copied from interface: GLSelectable
Append to list the component (or components) associated with the qid-th selection query issued by this component's render method. This will only be called if this component manages its own selection (i.e., the number nums returned by GLSelectable.numSelectionQueriesNeeded() is positive), and qid will in turn be a number between 0 and nums-1.

Specified by:
getSelection in interface GLSelectable
Parameters:
list - selected objects are appended to the end of this list
qid - index of the selection query

getRenderHints

public int getRenderHints()
Description copied from interface: GLRenderable
Returns a bit code giving rendering hints about this renderable. Current bit codes include TRANSLUCENT.

Specified by:
getRenderHints in interface GLRenderable
Returns:
bit code of rendering hints.

updateBounds

public void updateBounds(Point3d pmin,
                         Point3d pmax)
Description copied from interface: GLRenderable
Update the minimum and maximum points for this object. In an x-y-z coordinate system with x directed to the right and y directed upwards, the minimum and maximum points can be thought of as defining the left-lower-far and right-upper-near corners of a bounding cube. This method should only reduce the elements of the minimum point and increase the elements of the maximum point, since it may be used as part of an iteration to determine the bounding cube for several different objects.

Specified by:
updateBounds in interface GLRenderable
Parameters:
pmin - minimum point
pmax - maximum point

getDragger

public GLViewer.DraggerType getDragger()
Returns the dragger type


setDragger

public void setDragger(GLViewer.DraggerType type)
Sets the dragger type for manipulating the display


centerInViewer

public void centerInViewer()
Centre the probe in the middle of the viewer


resetInViewer

public void resetInViewer()
Resets to a default viewer centre orientation


getPlane

public void getPlane(Plane plane)
Gets the plane along which the display lies


getPlane

public Plane getPlane()
Gets the plane along which the display lies

Returns:
plane for the display

setPlane

public void setPlane(Plane plane)
Sets the plane along which the display lies


setPlane

public void setPlane(Vector3d n,
                     double offset)
Sets the plane along which the display lies


draggerAdded

public void draggerAdded(Dragger3dEvent e)
Specified by:
draggerAdded in interface Dragger3dListener

draggerBegin

public void draggerBegin(Dragger3dEvent e)
Specified by:
draggerBegin in interface Dragger3dListener

draggerMove

public void draggerMove(Dragger3dEvent e)
Specified by:
draggerMove in interface Dragger3dListener

draggerEnd

public void draggerEnd(Dragger3dEvent e)
Specified by:
draggerEnd in interface Dragger3dListener

draggerRemoved

public void draggerRemoved(Dragger3dEvent e)
Specified by:
draggerRemoved in interface Dragger3dListener