Commit 964925ec authored by hrchilds's avatar hrchilds

Update from March 20, 2006

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@641 18c085ea-50e0-402c-830e-de6fd14e8384
parent 64b3e536
......@@ -48,6 +48,11 @@
# Brad Whitlock, Mon Nov 21 16:57:39 PST 2005
# I made it copy libbz2.{dll,lib}.
#
# Brad Whitlock, Thu Mar 16 11:59:27 PDT 2006
# I added code to copy the NERSC and ORNL config files. I also added an
# optional -nodist argument that can make the script use an existing
# source distribution.
#
#------------------------------------------------------------------------------
if(`pwd` != "/data_vobs/VisIt") then
......@@ -55,6 +60,22 @@ if(`pwd` != "/data_vobs/VisIt") then
exit(-1)
endif
# Parse the comand line arguents.
set create_src_dist = true
set option_found = true
while ($option_found == true)
switch ($1)
case -nodist:
# Use an existing source distribution.
set create_src_dist = false
shift
breaksw
default:
set option_found = false
breaksw
endsw
end
# Set some directory variables.
set TOPDIR = "/data_vobs/VisIt"
set SCRIPTDIR = "/data_vobs/VisIt/clearcase_bin"
......@@ -64,8 +85,10 @@ set VisItDev = "$TOPDIR/VisItDev$VERSION"
set VISITSRC="visit"
# Run the visit-dist script so it creates a source distribution
echo "Creating intermediate source package..."
$SCRIPTDIR/visit-dist -withhelp $VISITSRC
if ($create_src_dist == true) then
echo "Creating intermediate source package..."
$SCRIPTDIR/visit-dist -withhelp $VISITSRC
endif
# Create a directory to contain the VisIt source distribution.
echo "Creating $VisItDev directory..."
......@@ -185,6 +208,8 @@ foreach configdir (Debug Release MSVC7.Net/Debug MSVC7.Net/Release)
# Copy the host config files to the right bin dir.
$SCRIPTDIR/converttextfile $SCRIPTDIR/visit-config-open.ini bin/$configdir/visit-config-open.ini
$SCRIPTDIR/converttextfile $SCRIPTDIR/visit-config-closed.ini bin/$configdir/visit-config-closed.ini
$SCRIPTDIR/converttextfile $SCRIPTDIR/visit-config-nersc.ini bin/$configdir/visit-config-nersc.ini
$SCRIPTDIR/converttextfile $SCRIPTDIR/visit-config-ornl.ini bin/$configdir/visit-config-ornl.ini
mkdir bin/$configdir/help
cp $VISITSRC/help/*.{html,helpml} bin/$configdir/help
mkdir bin/$configdir/databases
......
#ifndef CONSTRUCTDDFATTRIBUTES_H
#define CONSTRUCTDDFATTRIBUTES_H
#include <state_exports.h>
#include <string>
#include <AttributeSubject.h>
......@@ -18,7 +19,7 @@
//
// ****************************************************************************
class ConstructDDFAttributes : public AttributeSubject
class STATE_API ConstructDDFAttributes : public AttributeSubject
{
public:
enum BinningScheme
......
<?xml version="1.0"?>
<Attribute name="ConstructDDFAttributes" purpose="Attributes for constructing DDFs" persistent="true" exportAPI="" exportInclude="">
<Attribute name="ConstructDDFAttributes" purpose="Attributes for constructing DDFs" persistent="true" exportAPI="STATE_API" exportInclude="state_exports.h">
<Enum name="BinningScheme">
Uniform
Unknown
......
# Copyright 1991 - 2005
# Copyright 1991 - 2006
# The Regents of the University of California.
# All rights reserved.
#
......@@ -57,8 +57,9 @@ CPPFLAGS=-I../../include/visit @COMPONENT_CPPFLAGS@ @CPPFLAGS@
SEROBJ=$(SRC:.C=.o)
PAROBJ=$(SRC:.C=_par.o)
LIB=libavtddf
SERLIBS=-ldbatts -lpipeline_ser -lavtmath_ser -lavtexceptions -lvisit_vtk -llightweight_visit_vtk -lmisc -lstate -lcomm -lexpr -lparser -lutility $(VTK_LIBS) $(X_LIBS)
PARLIBS=-ldbatts -lpipeline_par -lavtmath_par -lavtexceptions -lvisit_vtk -llightweight_visit_vtk -lmisc -lstate -lcomm -lexpr -lparser -lutility $(VTK_LIBS) $(X_LIBS)
LIBS_FOR_MACOSX_PREBINDING=$(BZIP2_LIBS)
SERLIBS=-ldbatts -lpipeline_ser -lavtmath_ser -lavtexceptions -lvisit_vtk -llightweight_visit_vtk -lmisc -lstate -lcomm -lexpr -lparser -lutility $(VTK_LIBS) $(LIBS_FOR_MACOSX_PREBINDING) $(X_LIBS)
PARLIBS=-ldbatts -lpipeline_par -lavtmath_par -lavtexceptions -lvisit_vtk -llightweight_visit_vtk -lmisc -lstate -lcomm -lexpr -lparser -lutility $(VTK_LIBS) $(LIBS_FOR_MACOSX_PREBINDING) $(X_LIBS)
##
## Standard targets...
......
......@@ -28,7 +28,7 @@ avtUniformBinningScheme::avtUniformBinningScheme(int nt, const float *r,
// Must be a positive number of tuples
EXCEPTION0(ImproperUseException);
}
for (int i = 0 ; i < nt ; i++)
for (i = 0 ; i < nt ; i++)
{
if (r[2*i+1] <= r[2*i])
{
......@@ -46,7 +46,7 @@ avtUniformBinningScheme::avtUniformBinningScheme(int nt, const float *r,
ranges = new float[2*nt];
nvals = new int[nt];
nBins = 1;
for (int i = 0 ; i < ntuples ; i++)
for (i = 0 ; i < ntuples ; i++)
{
ranges[2*i] = r[2*i];
ranges[2*i+1] = r[2*i+1];
......
......@@ -474,7 +474,7 @@ avtDatabaseFactory::VisitFile(const char *visitFile, int timestep,
// the whole path to the file. We don't need to prepend a
// path if it already contains one.
if((fileName.find(":") != std::string::npos) ||
(fileName.size() > 0 && fileName[0] == '!')
(fileName.size() > 0 && fileName[0] == '!'))
continue;
// If the filename begins with "./", remove it.
......
......@@ -300,8 +300,8 @@ CPPFLAGS=@COMPONENT_CPPFLAGS@ @CPPFLAGS@
SEROBJ=$(SRC:.C=.o)
PAROBJ=$(SRC:.C=_par.o)
LIB=libexpressions
SERLIBS_FOR_MACOSX_PREBINDING=$(BZIP2_LIBS) -lavtfilters_ser
PARLIBS_FOR_MACOSX_PREBINDING=$(BZIP2_LIBS) -lavtfilters_par
SERLIBS_FOR_MACOSX_PREBINDING=$(BZIP2_LIBS) -lavtfilters_ser -lavtddf_ser
PARLIBS_FOR_MACOSX_PREBINDING=$(BZIP2_LIBS) -lavtfilters_par -lavtddf_par
COMMONLIBS=-ldbatts -lavtexceptions -lstate -lcomm -lmisc -lexpr -lparser -lutility -lplugin -lvisit_vtk -llightweight_visit_vtk -lavtview
SERLIBS=$(COMMONLIBS) -lpipeline_ser -lavtmath_ser -ldatabase_ser -lmir_ser $(VTK_LIBS) $(SERLIBS_FOR_MACOSX_PREBINDING) $(X_LIBS) @LIBS@
PARLIBS=$(COMMONLIBS) -lpipeline_par -lavtmath_par -ldatabase_par -lmir_par $(VTK_LIBS) $(PARLIBS_FOR_MACOSX_PREBINDING) $(X_LIBS) @LIBS@ @SHLIB_MPI_LIBS@
......
......@@ -418,11 +418,11 @@ avtExpressionEvaluatorFilter::PerformRestriction(
for (int i = 0 ; i < nVars ; i++)
{
std::string name = info->GetDomainTupleName(i);
debug5 << "EEF::PerformRestriction: " << name << endl;
debug5 << "EEF::PerformRestriction: " << name.c_str() << endl;
candidates.insert(name);
}
std::string name = info->GetCodomainName();
debug5 << "EEF::PerformRestriction: " << name << endl;
debug5 << "EEF::PerformRestriction: " << name.c_str() << endl;
candidates.insert(name);
}
else // (expr != NULL)
......
# Copyright 2000 - 2005
# Copyright 2000 - 2006
# The Regents of the University of California.
# All rights reserved.
#
......@@ -88,7 +88,7 @@
@VARIABLES@
@DIRTARGETS@
SUBDIRS=DBAtts DDF Math Pipeline MIR \
SUBDIRS=DBAtts Math Pipeline DDF MIR \
View Filters Database Expressions Queries Plotter FileWriter \
@VISWINDOW@ QtVisWindow
......
......@@ -201,10 +201,11 @@ CPPFLAGS=@COMPONENT_CPPFLAGS@ @CPPFLAGS@
SEROBJ=$(SRC:.C=.o)
PAROBJ=$(SRC:.C=_par.o)
LIB=libquery
LIBS_FOR_MACOSX_PREBINDING=$(BZIP2_LIBS)
COMMONLIBS=-ldbatts -lavtexceptions -lstate -lcomm -lmisc -lexpr -lparser -lutility -lplugin -lavtview -lvisit_vtk -llightweight_visit_vtk $(LIBS_FOR_MACOSX_PREBINDING)
SERLIBS=$(COMMONLIBS) -lpipeline_ser -lavtmath_ser -lavtfilters_ser -lexpressions_ser -ldatabase_ser -lmir_ser $(VTK_LIBS) $(X_LIBS) @LIBS@
PARLIBS=$(COMMONLIBS) -lpipeline_par -lavtmath_par -lavtfilters_par -lexpressions_par -ldatabase_par -lmir_par $(VTK_LIBS) $(X_LIBS) @LIBS@ @SHLIB_MPI_LIBS@
SERLIBS_FOR_MACOSX_PREBINDING=$(BZIP2_LIBS) -lavtddf_ser
PARLIBS_FOR_MACOSX_PREBINDING=$(BZIP2_LIBS) -lavtddf_par
COMMONLIBS=-ldbatts -lavtexceptions -lstate -lcomm -lmisc -lexpr -lparser -lutility -lplugin -lavtview -lvisit_vtk -llightweight_visit_vtk
SERLIBS=$(COMMONLIBS) -lpipeline_ser -lavtmath_ser -lavtfilters_ser -lexpressions_ser -ldatabase_ser -lmir_ser $(SERLIBS_FOR_MACOSX_PREBINDING) $(VTK_LIBS) $(X_LIBS) @LIBS@
PARLIBS=$(COMMONLIBS) -lpipeline_par -lavtmath_par -lavtfilters_par -lexpressions_par -ldatabase_par -lmir_par $(PARLIBS_FOR_MACOSX_PREBINDING) $(VTK_LIBS) $(X_LIBS) @LIBS@ @SHLIB_MPI_LIBS@
##
## Standard targets...
......
This diff is collapsed.
......@@ -22,6 +22,10 @@
// Hank Childs, Fri Mar 4 16:02:03 PST 2005
// Added support for deferring reading in all of the TOC.
//
// Brad Whitlock, Thu Mar 16 14:54:01 PST 2006
// Added byte offset so we can skip past a header. I also added a new
// flag for dividing a brick into bricklets.
//
// ****************************************************************************
class avtBOVFileFormat : public avtSTMDFileFormat
......@@ -53,12 +57,14 @@ class avtBOVFileFormat : public avtSTMDFileFormat
int cycle;
int full_size[3];
int bricklet_size[3];
int byteOffset;
char *varname;
bool hasBoundaries;
bool declaredEndianess;
bool littleEndian;
bool nodalCentering;
bool byteData;
bool divideBrick;
float min, max;
float origin[3];
float dimensions[3];
......
......@@ -653,7 +653,7 @@ avtVTKFileFormat::PopulateDatabaseMetaData(avtDatabaseMetaData *md)
else
{
avtMeshCoordType mct =(avtMeshCoordType)
dataset->GetFieldData()->GetArray("MeshCoordType")->GetComponent(0, 0);
int(dataset->GetFieldData()->GetArray("MeshCoordType")->GetComponent(0, 0));
avtMeshMetaData *mesh = new avtMeshMetaData;
mesh->name = MESHNAME;
mesh->meshType = type;
......
......@@ -96,6 +96,9 @@ QvisCommandWindow::~QvisCommandWindow()
// Brad Whitlock, Wed Jan 11 09:53:23 PDT 2006
// I fixed an errant tooltip.
//
// Brad Whitlock, Fri Mar 17 09:46:58 PDT 2006
// Added UpdateMacroCheckBoxes.
//
// ****************************************************************************
void
......@@ -206,6 +209,9 @@ QvisCommandWindow::CreateWindowContents()
// Load the saved Python scripts.
LoadScripts();
// Update the window's check boxes.
UpdateMacroCheckBoxes();
}
// ****************************************************************************
......@@ -255,7 +261,9 @@ QvisCommandWindow::CreateNode(DataNode *node)
// Creation: Fri Jan 6 17:01:57 PST 2006
//
// Modifications:
//
// Brad Whitlock, Fri Mar 17 09:43:25 PDT 2006
// Moved code to update widgets into UpdateMacroCheckBoxes.
//
// ****************************************************************************
void
......@@ -277,13 +285,42 @@ QvisCommandWindow::SetFromNode(DataNode *parentNode, const int *borders)
if((n = winNode->GetNode("macroAppend")) != 0)
macroAppend = n->AsBool();
macroStorageComboBox->blockSignals(true);
macroStorageComboBox->setCurrentItem(macroStorageMode);
macroStorageComboBox->blockSignals(false);
UpdateMacroCheckBoxes();
}
macroAppendCheckBox->blockSignals(true);
macroAppendCheckBox->setChecked(macroAppend);
macroAppendCheckBox->blockSignals(false);
// ****************************************************************************
// Method: QvisCommandWindow::UpdateMacroCheckBoxes
//
// Purpose:
// Updates the macro check boxes.
//
// Note: If anymore code is added to this method, you must check to
// make sure the widget you're setting is non-NULL since this
// method can be called before the window's widgets are created.
//
// Programmer: Brad Whitlock
// Creation: Fri Mar 17 09:43:39 PDT 2006
//
// Modifications:
//
// ****************************************************************************
void
QvisCommandWindow::UpdateMacroCheckBoxes()
{
if(macroStorageComboBox != 0)
{
macroStorageComboBox->blockSignals(true);
macroStorageComboBox->setCurrentItem(macroStorageMode);
macroStorageComboBox->blockSignals(false);
}
if(macroAppendCheckBox != 0)
{
macroAppendCheckBox->blockSignals(true);
macroAppendCheckBox->setChecked(macroAppend);
macroAppendCheckBox->blockSignals(false);
}
}
// ****************************************************************************
......
......@@ -64,6 +64,7 @@ private:
QString fileName(int index) const;
void LoadScripts();
void SaveScripts();
void UpdateMacroCheckBoxes();
QTabWidget *tabWidget;
QButtonGroup *executeButtonsGroup;
......
......@@ -18,7 +18,7 @@ enhancements and bug-fixes that were added to this release.</p>
<li>VisIt's <i>Weighted variable sum</i> query now has an option to weight by the revolved volume for 2D datasets that are revolved into 3D.</li>
<li>VisIt now intermittently saves the components of your settings that are related to the paths that you've visited so they can be recalled more easily in future VisIt sessions without requiring all settings to be saved.</li>
<li>Visit's Silo database reader plugin now supports Silo's Curve objects.</li>
<li>VisIt now supports 1-button mice, which are common on MacOS X systems. The default clicking behavior is still mapped to the left mouse button. Right mouse button is simualted by holding down the <i>Alt-key</i> while you click the mouse. Middle mouse button is simulated by holding down <i>Shift+Alt</i> while you click the mouse.</li>
<li>VisIt now supports 1-button mice, which are common on MacOS X systems. The default clicking behavior is still mapped to the left mouse button. Right mouse button is simulated by holding down the <i>Alt-key</i> while you click the mouse. Middle mouse button is simulated by holding down <i>Shift+Alt</i> while you click the mouse.</li>
<li>VisIt now supports <i>redo view</i> in addition to <i>undo view</i>. Redo view is used to re-apply views that have been undone using <i>undo view</i>.</li>
<li>VisIt has a new <i>ijk_gradient</i> expression that can be used for more efficiently creating the gradient for structured meshes. The new expression also does not suffer from any potential sampling errors that can happen when sampling the gradient spatially.</li>
<li>VisIt's Resample operator can now resample variables defined on a point mesh onto a rectilinear mesh.</li>
......@@ -54,6 +54,7 @@ off-screen and advancing through time.</li>
<li>Using shadows during scalable rendering for 2D plots causes the compute engine to crash.</li>
<li>VisIt's viewer hangs when deleting a plot after doing some picks while in scalable rendering mode.</li>
<li>VisIt crashes when opening LEOS data files with many variables.</li>
<li>VisIt's CLI hangs when started by the <i>Save movie</i> wizard in the GUI on the Windows platform. The CLI's synchronization code was improved so that it takes far less CPU.</li>
<li>The InverseGhostZone operator does not work with SIL selections.</li>
<li>The <i>Spatial extents</i> query does not return the original extents when required. </li>
<li>If scalable rendering fails when generating a movie in the CLI, the CLI will halt with a Python error instead of fixing the problem and continuing.</li>
......@@ -68,7 +69,7 @@ off-screen and advancing through time.</li>
<li>VisIt's <i>Choose center</i> feature does not work in scalable rendering mode again.</li>
<li>Middle mouse interaction with 3D interactors does not work using the SGI executable built on that <i>quad</i> machine.</li>
<li>The OnionPeel operator does not work properly when there are multiple "domain" collections in a dataset's SIL.</li>
<li>Rubber band lines and boxes for the zoom interactors are not drawn in the MacOS X version of VisIt</li>
<li>Rubber band lines and boxes for the zoom interactors are not drawn in the MacOS X version of VisIt.</li>
<li>The option for determining how VisIt picks a vis window for curves created from queries over time has been clarified in the <b>Global Lineout window</b>.</li>
<li>Various debugging error messages are printed to the terminal where VisIt was launched when zooming in on plots using the MacOS X version of VisIt.</li>
<li>The screen position control used in the <b>Annotation window</b> to control the position of annotation objects is missing its down arrow.</li>
......
# Copyright 2000 - 2005
# Copyright 2000 - 2006
# The Regents of the University of California.
# All rights reserved.
#
......@@ -125,6 +125,7 @@ ColorAttributeList.java \
ColorControlPoint.java \
ColorControlPointList.java \
ColorTableAttributes.java \
ConstructDDFAttributes.java \
CouldNotConnectException.java \
DBOptionsAttributes.java \
DBPluginInfoAttributes.java \
......
......@@ -181,6 +181,9 @@ import java.util.prefs.BackingStoreException;
// Brad Whitlock, Tue Mar 7 16:43:46 PST 2006
// Added RedoView.
//
// Brad Whitlock, Thu Mar 16 16:23:50 PST 2006
// Added DDF attributes.
//
// ****************************************************************************
public class ViewerProxy implements SimpleObserver
......@@ -240,6 +243,7 @@ public class ViewerProxy implements SimpleObserver
processAtts = new ProcessAttributes();
dbPluginInfoAtts = new DBPluginInfoAttributes();
exportDBAtts = new ExportDBAttributes();
constructDDFAtts = new ConstructDDFAttributes();
clientMethod = new ClientMethod();
clientInformation = new ClientInformation();
clientInformationList = new ClientInformationList();
......@@ -337,6 +341,7 @@ public class ViewerProxy implements SimpleObserver
xfer.Add(silAtts);
xfer.Add(dbPluginInfoAtts);
xfer.Add(exportDBAtts);
xfer.Add(constructDDFAtts);
xfer.Add(clientMethod);
xfer.Add(clientInformation);
xfer.Add(clientInformationList);
......@@ -1760,6 +1765,7 @@ public class ViewerProxy implements SimpleObserver
public final ClientInformationList GetClientInformationList() { return clientInformationList; }
public MovieAttributes GetMovieAttributes() { return movieAtts; }
public MeshManagementAttributes GetMeshManagementAttributes() { return meshManagementAtts; }
public ConstructDDFAttributes GetDDFAttributes() { return constructDDFAtts; }
public int GetPlotIndex(String plotName)
{
......@@ -1930,6 +1936,7 @@ public class ViewerProxy implements SimpleObserver
private ProcessAttributes processAtts;
private DBPluginInfoAttributes dbPluginInfoAtts;
private ExportDBAttributes exportDBAtts;
private ConstructDDFAttributes constructDDFAtts;
private ClientMethod clientMethod;
private ClientInformation clientInformation;
private ClientInformationList clientInformationList;
......
......@@ -15,7 +15,7 @@ import llnl.visit.GaussianControlPointList;
// Notes: Autogenerated by xml2java.
//
// Programmer: xml2java
// Creation: Thu Mar 3 09:30:01 PDT 2005
// Creation: Mon Mar 20 10:49:44 PDT 2006
//
// Modifications:
//
......@@ -35,10 +35,13 @@ public class VolumeAttributes extends AttributeSubject implements Plugin
public final static int SCALING_LOG10 = 1;
public final static int SCALING_SKEW = 2;
public final static int SAMPLINGTYPE_KERNELBASED = 0;
public final static int SAMPLINGTYPE_RASTERIZATION = 1;
public VolumeAttributes()
{
super(24);
super(25);
legendFlag = true;
lightingFlag = true;
......@@ -66,11 +69,12 @@ public class VolumeAttributes extends AttributeSubject implements Plugin
num3DSlices = 200;
scaling = SCALING_LINEAR;
skewFactor = 1;
sampling = SAMPLINGTYPE_RASTERIZATION;
}
public VolumeAttributes(VolumeAttributes obj)
{
super(24);
super(25);
int i;
......@@ -101,6 +105,7 @@ public class VolumeAttributes extends AttributeSubject implements Plugin
num3DSlices = obj.num3DSlices;
scaling = obj.scaling;
skewFactor = obj.skewFactor;
sampling = obj.sampling;
SelectAll();
}
......@@ -138,7 +143,8 @@ public class VolumeAttributes extends AttributeSubject implements Plugin
(gradientType == obj.gradientType) &&
(num3DSlices == obj.num3DSlices) &&
(scaling == obj.scaling) &&
(skewFactor == obj.skewFactor));
(skewFactor == obj.skewFactor) &&
(sampling == obj.sampling));
}
public String GetName() { return "Volume"; }
......@@ -290,6 +296,12 @@ public class VolumeAttributes extends AttributeSubject implements Plugin
Select(23);
}
public void SetSampling(int sampling_)
{
sampling = sampling_;
Select(24);
}
// Property getting methods
public boolean GetLegendFlag() { return legendFlag; }
public boolean GetLightingFlag() { return lightingFlag; }
......@@ -315,6 +327,7 @@ public class VolumeAttributes extends AttributeSubject implements Plugin
public int GetNum3DSlices() { return num3DSlices; }
public int GetScaling() { return scaling; }
public double GetSkewFactor() { return skewFactor; }
public int GetSampling() { return sampling; }
// Write and read methods.
public void WriteAtts(CommunicationBuffer buf)
......@@ -367,6 +380,8 @@ public class VolumeAttributes extends AttributeSubject implements Plugin
buf.WriteInt(scaling);
if(WriteSelect(23, buf))
buf.WriteDouble(skewFactor);
if(WriteSelect(24, buf))
buf.WriteInt(sampling);
}
public void ReadAtts(int n, CommunicationBuffer buf)
......@@ -450,6 +465,9 @@ public class VolumeAttributes extends AttributeSubject implements Plugin
case 23:
SetSkewFactor(buf.ReadDouble());
break;
case 24:
SetSampling(buf.ReadInt());
break;
}
}
}
......@@ -480,5 +498,6 @@ public class VolumeAttributes extends AttributeSubject implements Plugin
private int num3DSlices;
private int scaling;
private double skewFactor;
private int sampling;
}
......@@ -1089,6 +1089,9 @@ ViewerFileServer::StartServer(const std::string &host)
// Brad Whitlock, Wed Feb 2 14:25:31 PST 2005
// Improved the error message for "Could not connect" exception.
//
// Brad Whitlock, Fri Mar 17 10:56:20 PDT 2006
// Improved the "Cound not connect" exception error message even more.
//
// ****************************************************************************
void
......@@ -1178,15 +1181,71 @@ ViewerFileServer::StartServer(const std::string &host, const stringVector &args)
}
CATCH(CouldNotConnectException)
{
char message[200];
SNPRINTF(message, 200,
"The metadata server on host %s could not be launched or it "
"could not connect back to your local computer. "
"You might try using \"Parse from SSH_CLIENT\" in your host "
"profile for host %s. You may also want to make sure your "
"PATH environment variable includes the program \"visit\".",
host.c_str(), host.c_str());
char *message = new char[10000];
const char *h = host.c_str();
SNPRINTF(message, 10000,
"The metadata server on host %s could not be launched or it "
"could not connect back to your local computer. This can "
"happen for a variety of reasons.\n\n"
"It is possible that SSH was unable to launch VisIt on %s. "
"If you want to verify this, run "
"\"visit -debug 5\" and then check to see if any vcl, "
"mdserver, or engine log files are present on %s in your "
"home directory. If no log files were created then SSH was "
"probably not able to launch VisIt components on %s. In that "
"case, check that you can SSH to %s and check your local "
"VisIt installation's Host profiles to make sure the path "
"to VisIt on %s is specified. Alternatively, you set the "
"PATH environment variable on %s so it contains the "
"path to the program \"visit\".\n\n"
"If there were no debug logs to be found on %s and your local "
"computer runs a newer version of Linux then quit VisIt and "
"try running \"visit -nopty -debug 5\". The \"-nopty\" option "
"tells VisIt not to allocate a pseudoterminal in which to "
"run SSH. When you run with the \"-nopty\" option, VisIt's "
"password window will not be used. Instead, look for an SSH "
"prompt in the terminal window where you ran VisIt. You should "
"be able to enter your password at that prompt. If successful, "
"SSH should continue trying to launch VisIt on %s. If VisIt "
"still cannot connect after SSH launches VisIt's remote "
"components, check for debug logs on %s to see if VisIt "
"was at least able to launch there.\n\n"
"If you found debug log files on %s but VisIt still can't "
"connect then it's possible that %s cannot connect to your "
"local computer. Some desktop computers do not provide a "
"valid network name when VisIt asks for one. If you suspect "
"that this could be the cause of the launch failure, try "
"using \"Parse from SSH_CLIENT\" in your host profile for "
"host %s. If that does not work and if you are using VPN "
"then you should try manually setting the local host name "
"VisIt will use when telling its remote components to connect "
"back to your local computer. Open the Host profiles window "
"and go to the Advanced options tab. Click the \"Specify manually\" "
"radio button and type in the IP address of your VPN session "
"into the adjacent text field before you try connecting again.\n\n"
"If changing the above settings still does not allow you to "
"connect then you may have a local firewall blocking "
"ports 5600-5609, which are the ports that VisIt uses to "
"listen for incoming connections (when they are expected) "
"from remote VisIt components. If you've tried the previous "
"suggestions and none of them worked then you may have a "
"firewall denying VisIt access to local computer. Try turning "
"the firewall off or allowing ports 5600-5609 and run VisIt "
"again. If you do not know how to enable ports for your "
"firewall or if you do not have the required privileges, "
"contact your system administrator.\n\n"
"If none of these suggestions allow you to successfully "
"connect to %s then contact visit-help@llnl.gov and provide "
"information about how you are trying to connect. Be sure to "
"include the VisIt version and platform on which you are "
"running.", h,h,h,h,h,h,h,h,h,h,h,h,h,h);
Error(message);
delete [] message;
delete newServer;
delete dialog;
......
......@@ -60,7 +60,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <windows.h>
#elif defined(__APPLE__)
#include <Carbon/Carbon.h>
#include <qwidget.h>
#else
#include <X11/Intrinsic.h>
#endif
......@@ -266,8 +265,9 @@ void vtkDashedXorGridMapper2D::RenderOverlay(vtkViewport* viewport, vtkActor2D*
// Note that this only works because we've made the GenericDisplayId
// method return the GL widget pointer. On other platforms where
// the display is actually used for something, this does not work.
QWidget *gl = (QWidget *)window->GetGenericDisplayId();
int H = gl->height();
typedef struct { int x,y,w,h; void *handle; } OverlayInfo;
OverlayInfo *info = (OverlayInfo *)window->GetGenericDisplayId();
int H = info->h;
//
// Try and create the window if we've not yet created it.
......@@ -276,11 +276,11 @@ void vtkDashedXorGridMapper2D::RenderOverlay(vtkViewport* viewport, vtkActor2D*
{
// Get the GL widget's global screen coordinates.
Rect wRect;
wRect.left = gl->x();
wRect.right = gl->x() + gl->width();
wRect.top = gl->y();
wRect.bottom = gl->y() + gl->height();
QDLocalToGlobalRect(GetWindowPort((WindowPtr)gl->handle()), &wRect );
wRect.left = info->x;
wRect.right = info->x + info->w;
wRect.top = info->y;
wRect.bottom = info->y + info->h;
QDLocalToGlobalRect(GetWindowPort((WindowPtr)info->handle), &wRect );
// Try and create the overlay window.
overlay = new vtkDashedXorGridMapper2DOverlay;
......@@ -309,8 +309,8 @@ void vtkDashedXorGridMapper2D::RenderOverlay(vtkViewport* viewport, vtkActor2D*
CGRect r;
r.origin.x = 0;
r.origin.y = 0;
r.size.width = gl->width();
r.size.height = gl->height();
r.size.width = info->w;
r.size.height = info->h;
CGContextClearRect(overlay->ctx, r);
#else
......
......@@ -58,7 +58,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <windows.h>
#elif defined(__APPLE__)
#include <Carbon/Carbon.h>
#include <qwidget.h>
#else
#include <X11/Intrinsic.h>
#endif
......@@ -309,8 +308,9 @@ CGContextMoveToPoint(overlay->ctx, X,H-(Y));
// Note that this only works because we've made the GenericDisplayId
// method return the GL widget pointer. On other platforms where
// the display is actually used for something, this does not work.
QWidget *gl = (QWidget *)window->GetGenericDisplayId();
int H = gl->height();
typedef struct { int x,y,w,h; void *handle; } OverlayInfo;
OverlayInfo *info = (OverlayInfo *)window->GetGenericDisplayId();
int H = info->h;
//
// Try and create the window if we've not yet created it.
......@@ -319,11 +319,11 @@ CGContextMoveToPoint(overlay->ctx, X,H-(Y));
{
// Get the GL widget's global screen coordinates.
Rect wRect;
wRect.left = gl->x();
wRect.right = gl->x() + gl->width();
wRect.top = gl->y();
wRect.bottom = gl->y() + gl->height();
QDLocalToGlobalRect(GetWindowPort((WindowPtr)gl->handle()), &wRect );
wRect.left = info->x;
wRect.right = info->x + info->w;
wRect.top = info->y;
wRect.bottom = info->y + info->h;
QDLocalToGlobalRect(GetWindowPort((WindowPtr)info->handle), &wRect );
// Try and create the overlay window.
overlay = new vtkRubberBandMapper2DOverlay;
......@@ -352,10 +352,13 @@ CGContextMoveToPoint(overlay->ctx, X,H-(Y));
CGRect r;
r.origin.x = 0;
r.origin.y = 0;
r.size.width = gl->width();
r.size.height = gl->height();
r.size.width = info->w;
r.size.height = info->h;
CGContextClearRect(overlay->ctx, r);
// Free the info that we received from the vtkQt window.
delete info;
#else
// ***************************************************************************
//
......
......@@ -325,14 +325,51 @@ static std::map<AnnotationObject *, int> localObjectReferenceCount;
#ifdef THREADS
#if defined(_WIN32)
#define POLLING_SYNCHRONIZE
static CRITICAL_SECTION mutex;
static HANDLE threadHandle = INVALID_HANDLE_VALUE;
static CRITICAL_SECTION mutex;
static HANDLE threadHandle = INVALID_HANDLE_VALUE;
static bool waitingForViewer = false;
static ObserverToCallback *synchronizeCallback = 0;
static HANDLE received_sync_from_viewer = INVALID_HANDLE_VALUE;
#define THREAD_INIT()
#define MUTEX_CREATE() InitializeCriticalSection(&mutex)
#define MUTEX_DESTROY()
#define MUTEX_LOCK() EnterCriticalSection(&mutex)
#define MUTEX_UNLOCK() LeaveCriticalSection(&mutex)
#define SYNC_COND_WAIT() MUTEX_UNLOCK(); \
if(keepGoing) \
{\
waitingForViewer = true; \
WaitForSingleObject(received_sync_from_viewer, INFINITE); \
waitingForViewer = false; \
}
#define SYNC_WAKE_MAIN_THREAD() if(waitingForViewer) \
WakeMainThread(0, 0);
#define SYNC_CREATE() received_sync_from_viewer = CreateEvent(NULL, FALSE, FALSE, NULL);
#define SYNC_DESTROY() CloseHandle(received_sync_from_viewer);
// ****************************************************************************
// Function: WakeMainThread