Java example: TryQuery
This example program shows how to use some of VisIt's query capabilities to perform picks and lineouts.
Running the program
java -cp . TryQuery -dv -stay
Program source code
import java.lang.ArrayIndexOutOfBoundsException;
import java.util.Vector;
import llnl.visit.AttributeSubject;
import llnl.visit.SimpleObserver;
import llnl.visit.QueryAttributes;
public class TryQuery extends RunViewer implements SimpleObserver
{
public TryQuery()
{
doUpdate = true;
// Make this object observe the light attributes.
viewer.GetViewerState().GetQueryAttributes().Attach(this);
}
protected void work(String[] args)
{
// Try and open a database
if(viewer.GetViewerMethods().OpenDatabase(viewer.GetDataPath() + "curv2d.silo"))
{
viewer.GetViewerMethods().AddPlot("Mesh", "curvmesh2d");
viewer.GetViewerMethods().AddPlot("Pseudocolor", "d");
viewer.GetViewerMethods().DrawPlots();
// Set the colortable to one that has white at the bottom values.
viewer.GetViewerMethods().SetActiveContinuousColorTable("calewhite");
// Create the variable list.
Vector vars = new Vector();
vars.addElement("default");
// Do some picks.
viewer.GetViewerMethods().Pick(300, 300, vars);
viewer.GetViewerMethods().Pick(450, 350, vars);
viewer.GetViewerMethods().Pick(600, 400, vars);
// Do some lineouts.
viewer.GetViewerMethods().Lineout(-4.01261, 1.91818, 2.52975, 3.78323, vars);
viewer.GetViewerMethods().SetActiveWindow(1);
viewer.GetViewerMethods().Lineout(-3.89903, 1.79309, 2.91593, 3.40794, vars);
// Change the window layout.
viewer.GetViewerMethods().SetWindowLayout(2);
}
else
System.out.println("Could not open the database!");
}
public void Update(AttributeSubject s)
{
QueryAttributes q = (QueryAttributes)s;
printResults(q);
}
public void SetUpdate(boolean val) { doUpdate = val; }
public boolean GetUpdate() { return doUpdate; }
protected void printResults(QueryAttributes q)
{
System.out.println("Query name="+q.GetName()+
" resultString="+q.GetResultsMessage());
}
public static void main(String args[])
{
TryQuery r = new TryQuery();
r.run(args);
}
private boolean doUpdate;
}