Commit d9c79b5e authored by hrchilds's avatar hrchilds

Update from April 27, 2005

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@458 18c085ea-50e0-402c-830e-de6fd14e8384
parent 3dbdda1c
......@@ -123,6 +123,9 @@
# Jeremy Meredith, Mon Apr 11 09:15:13 PDT 2005
# Only show failed results. Separated summary from log.
#
# Mark C. Miller, Wed Apr 27 08:29:28 PDT 2005
# Removed '~' from URL for test web site
#
# ----------------------------------------------------------------------------
# list of users who want email every night with the log file
......@@ -146,7 +149,7 @@ msgftr_build="\n\n------ build log follows ------\n\n"
msghdr_testfailed="From: visit@llnl.gov\n\
Subject: failed regression test\n\
\n\
Results posted at https://dnt-cs.llnl.gov/~visit/\
Results posted at https://dnt-cs.llnl.gov/visit/\
\n\
This is an automated error message: \n\
\n\
......@@ -155,7 +158,7 @@ The VisIt regression test failed during an automatic run\n"
msghdr_testpassed="From: visit@llnl.gov\n\
Subject: passed regression test\n\
\n\
Results posted at https://dnt-cs.llnl.gov/~visit/\
Results posted at https://dnt-cs.llnl.gov/visit/\
\n\
This is an automated message: \n\
\n\
......@@ -164,7 +167,7 @@ The VisIt regression test passed the automatic run\n"
msghdr_partialpass="From: visit@llnl.gov\n\
Subject: partially passed regression test\n\
\n\
Results posted at https://dnt-cs.llnl.gov/~visit/\
Results posted at https://dnt-cs.llnl.gov/visit/\
\n\
This is an automated message: \n\
\n\
......@@ -247,7 +250,7 @@ cd ..
curdate=`date +%Y-%m-%d-%p%I%M`
# set mode to run in
modes="serial parallel scalable,parallel"
modes="serial parallel scalable,parallel hdf5"
if test "`date +%A`" = "Sunday"; then
modes="serial,hdf5 parallel,hdf5 scalable,parallel,hdf5 dlb"
fi
......
......@@ -45,22 +45,22 @@ QueryAttributes::ElementType_FromString(const std::string &s, QueryAttributes::E
static const char *VarType_strings[] = {
"Mesh", "Scalar", "Vector",
"Tensor", "Symmetric_Tensor", "Material",
"Species", "Curve", "Unknown"
};
"Tensor", "Symmetric_Tensor", "Label",
"Material", "Species", "Curve",
"Unknown"};
std::string
QueryAttributes::VarType_ToString(QueryAttributes::VarType t)
{
int index = int(t);
if(index < 0 || index >= 9) index = 0;
if(index < 0 || index >= 10) index = 0;
return VarType_strings[index];
}
std::string
QueryAttributes::VarType_ToString(int t)
{
int index = (t < 0 || t >= 9) ? 0 : t;
int index = (t < 0 || t >= 10) ? 0 : t;
return VarType_strings[index];
}
......@@ -68,7 +68,7 @@ bool
QueryAttributes::VarType_FromString(const std::string &s, QueryAttributes::VarType &val)
{
val = QueryAttributes::Mesh;
for(int i = 0; i < 9; ++i)
for(int i = 0; i < 10; ++i)
{
if(s == VarType_strings[i])
{
......@@ -125,7 +125,7 @@ QueryAttributes::DataType_FromString(const std::string &s, QueryAttributes::Data
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -156,7 +156,7 @@ QueryAttributes::QueryAttributes() : AttributeSubject("ss*sFiid*iii*iib")
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -193,7 +193,7 @@ QueryAttributes::QueryAttributes(const QueryAttributes &obj) : AttributeSubject(
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -213,7 +213,7 @@ QueryAttributes::~QueryAttributes()
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -253,7 +253,7 @@ QueryAttributes::operator = (const QueryAttributes &obj)
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -294,7 +294,7 @@ QueryAttributes::operator == (const QueryAttributes &obj) const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -315,7 +315,7 @@ QueryAttributes::operator != (const QueryAttributes &obj) const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -336,7 +336,7 @@ QueryAttributes::TypeName() const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -364,7 +364,7 @@ QueryAttributes::CopyAttributes(const AttributeGroup *atts)
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -390,7 +390,7 @@ QueryAttributes::CreateCompatible(const std::string &tname) const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -417,7 +417,7 @@ QueryAttributes::NewInstance(bool copy) const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -454,7 +454,7 @@ QueryAttributes::SelectAll()
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -568,7 +568,7 @@ QueryAttributes::CreateNode(DataNode *parentNode, bool completeSave, bool forceA
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -910,7 +910,7 @@ QueryAttributes::SelectVarTypes()
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -947,7 +947,7 @@ QueryAttributes::GetFieldName(int index) const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -984,7 +984,7 @@ QueryAttributes::GetFieldType(int index) const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -1021,7 +1021,7 @@ QueryAttributes::GetFieldTypeName(int index) const
// Note: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......
......@@ -14,7 +14,7 @@
// Notes: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Wed Dec 15 17:00:43 PST 2004
// Creation: Wed Apr 27 10:06:54 PDT 2005
//
// Modifications:
//
......@@ -35,6 +35,7 @@ public:
Vector,
Tensor,
Symmetric_Tensor,
Label,
Material,
Species,
Curve,
......
......@@ -10,6 +10,7 @@
Vector
Tensor
Symmetric_Tensor
Label
Material
Species
Curve
......
......@@ -206,6 +206,9 @@ avtMinMaxQuery::PreExecute()
// Hank Childs, Thu Mar 10 11:53:28 PST 2005
// Fix memory leak.
//
// Kathleen Bonnell, Wed Apr 27 08:29:52 PDT 2005
// Modified ghost tests to account for ghost nodes.
//
// ****************************************************************************
void
......@@ -216,15 +219,17 @@ avtMinMaxQuery::Execute(vtkDataSet *ds, const int dom)
return;
}
int i;
vtkUnsignedCharArray *ghosts =
vtkUnsignedCharArray *ghostZones =
(vtkUnsignedCharArray*)ds->GetCellData()->GetArray("avtGhostZones");
vtkUnsignedCharArray *ghostNodes =
(vtkUnsignedCharArray*)ds->GetPointData()->GetArray("avtGhostNodes");
vtkDataArray *data = NULL;
bool shouldDeleteData = false;
string var = queryAtts.GetVariables()[0];
int varType = queryAtts.GetVarTypes()[0];
int ts = queryAtts.GetTimeStep();
scalarCurve = false;
bool checkGhost = false;
bool checkGhost = (ghostZones != NULL || ghostNodes != NULL);
bool haveMin1 = false;
bool haveMin2 = false;
bool haveMax1 = false;
......@@ -240,7 +245,6 @@ avtMinMaxQuery::Execute(vtkDataSet *ds, const int dom)
{
nodeCentered = false;
elementName = "zone";
checkGhost = ghosts != NULL;
}
else if (varType == QueryAttributes::Curve)
{
......@@ -287,6 +291,7 @@ avtMinMaxQuery::Execute(vtkDataSet *ds, const int dom)
stringVector matNames;
floatVector matValues;
vtkIdList *cellIds = vtkIdList::New();
vtkIdList *ids = vtkIdList::New();
for (int elNum = 0; elNum < data->GetNumberOfTuples(); elNum++)
{
......@@ -315,14 +320,26 @@ avtMinMaxQuery::Execute(vtkDataSet *ds, const int dom)
break;
}
bool ghost = false;
if (checkGhost)
{
ghost = (ghosts->GetValue(elNum) > 0);
}
if (nodeCentered)
{
if (doMin)
if (checkGhost)
{
if (ghostNodes != NULL)
{
ghost = (ghostNodes->GetValue(elNum) > 0);
}
else
{
ds->GetPointCells(elNum, ids);
int numGhostCells = 0;
for (int i = 0; i < ids->GetNumberOfIds(); i++)
numGhostCells +=
ghostZones->GetValue(ids->GetId(i)) > 0 ? 1 : 0;
ghost = numGhostCells == ids->GetNumberOfIds();
}
}
if (doMin && !ghost)
{
if (val < minInfo1.GetValue())
{
......@@ -342,7 +359,7 @@ avtMinMaxQuery::Execute(vtkDataSet *ds, const int dom)
}
cellIds->Reset();
}
if (doMax)
if (doMax && !ghost)
{
if (val > maxInfo1.GetValue())
{
......@@ -365,7 +382,24 @@ avtMinMaxQuery::Execute(vtkDataSet *ds, const int dom)
}
else // zoneCentered
{
if (mat != NULL && elNum >= 0 && elNum < mat->GetNZones())
if (checkGhost)
{
if (ghostZones != NULL)
{
ghost = (ghostZones->GetValue(elNum) > 0);
}
else
{
ds->GetCellPoints(elNum, ids);
int numGhostNodes = 0;
for (int i = 0; i < ids->GetNumberOfIds(); i++)
numGhostNodes +=
ghostNodes->GetValue(ids->GetId(i)) > 0 ? 1 : 0;
ghost = numGhostNodes > 0;
}
}
if (!ghost && mat != NULL && elNum >= 0 && elNum < mat->GetNZones())
{
matInfo = mat->ExtractCellMatInfo(elNum);
for (i = 0; i < matInfo.size(); ++i)
......@@ -432,6 +466,7 @@ avtMinMaxQuery::Execute(vtkDataSet *ds, const int dom)
}
}
cellIds->Delete();
ids->Delete();
if (nodeCentered)
{
......
......@@ -429,6 +429,10 @@ VisitHotPointInteractor::Start3DMode(INTERACTION_MODE mode)
// Kathleen Bonnell, Tue Dec 2 17:41:31 PST 2003
// Allow Pick interactions (use Pick2d).
//
// Brad Whitlock, Wed Apr 27 17:20:09 PST 2005
// Make it use a navigate interactor for lineout mode so we at least have
// an interactor in the rare case that we enter lineout mode here.
//
// ****************************************************************************
void
......@@ -443,6 +447,7 @@ VisitHotPointInteractor::StartCurveMode(INTERACTION_MODE mode)
switch(mode)
{
case NAVIGATE:
case LINEOUT:
if(navigateCurve == NULL)
{
navigateCurve = new NavigateCurve(proxy);
......@@ -464,9 +469,6 @@ VisitHotPointInteractor::StartCurveMode(INTERACTION_MODE mode)
}
newInteractor = pick2D;
break;
case LINEOUT:
// These are only here to prevent compiler warning.
break;
}
if(newInteractor == NULL)
......
......@@ -87,5 +87,5 @@ MILI_DIR=/usr/gapps/visit/mili/current/linux_rhel3_gcc_3.2.3
##
## Silo
##
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/lib
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/lib
......@@ -87,5 +87,5 @@ MILI_DIR=/usr/gapps/visit/mili/current/linux_rhel3_gcc_3.2.3
##
## Silo
##
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/lib
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/lib
......@@ -87,5 +87,5 @@ MILI_DIR=/usr/gapps/visit/mili/current/linux_rhel3_gcc_3.2.3
##
## Silo
##
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/lib
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/lib
......@@ -87,5 +87,5 @@ MILI_DIR=/usr/gapps/visit/mili/current/linux_rhel3_gcc_3.2.3
##
## Silo
##
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/lib
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/lib
......@@ -87,5 +87,5 @@ MILI_DIR=/usr/gapps/visit/mili/current/linux_rhel3_gcc_3.2.3
##
## Silo
##
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/lib
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/lib
......@@ -87,5 +87,5 @@ MILI_DIR=/usr/gapps/visit/mili/current/linux_rhel3_gcc_3.2.3
##
## Silo
##
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre4/linux_rhel3_gcc_3.2.3/lib
DEFAULT_SILO_INCLUDES=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/include
DEFAULT_SILO_LIBRARY=/usr/gapps/silo/4.4.3-pre6/linux_rhel3_gcc_3.2.3/lib
......@@ -138,6 +138,7 @@ PlotList.java \
Plugin.java \
PluginManagerAttributes.java \
Point.java \
PostponedAction.java \
PrinterAttributes.java \
QueryAttributes.java \
QueryList.java \
......@@ -181,7 +182,7 @@ JARFILE=visit.jar
## Standard targets...
##
all: package main
all: package
install: install_bin
......
This diff is collapsed.
......@@ -109,6 +109,10 @@ class Xfer;
// Added the ability to query for errors detected during plugin
// initialization.
//
// Brad Whitlock, Tue Apr 26 14:33:09 PST 2005
// Added PartFilePattern, ConsolidateVirtualDatabases methods and added
// digitLength member to VirtualFileInformation.
//
// ****************************************************************************
class MDServerConnection
......@@ -137,6 +141,7 @@ class MDServerConnection
std::string path;
stringVector files;
int digitLength;
};
typedef std::map<VirtualFileName, VirtualFileInformation> VirtualFileInformationMap;
......@@ -178,10 +183,15 @@ private:
bool FileMatchesFilterList(const std::string &) const;
bool FileMatchesFilter(const char *filter, const char *str, int &j) const;
bool GetPattern(const std::string &file, std::string &p) const;
bool GetPattern(const std::string &file, std::string &p, int &) const;
std::string ExpandPathHelper(const std::string &path,
const std::string &workingDir) const;
bool FileHasVisItExtension(const std::string &file) const;
bool FileLooksLikePartFile(const VirtualFileInformationMap &newVirtualFiles,
const std::string &pattern) const;
void ConsolidateVirtualDatabases(VirtualFileInformationMap &newVirtualFiles,
GetFileListRPC::FileList &files);
private:
ParentProcess *parent;
Xfer *xfer;
......
......@@ -357,6 +357,71 @@ SaveViewAction::Execute(int val)
}
}
// ****************************************************************************
// Method: SaveViewAction::CopyFrom
//
// Purpose:
// Copies attributes from another SaveViewAction.
//
// Arguments:
// obj : The action from which to copy attributes.
//
// Returns: True if the views were copied; false otherwise.
//
// Note:
//
// Programmer: Brad Whitlock
// Creation: Wed Apr 27 15:28:11 PST 2005
//
// Modifications:
//
// ****************************************************************************
bool
SaveViewAction::CopyFrom(const ViewerActionBase *obj)
{
bool retval = false;
if(std::string(GetName()) == std::string(obj->GetName()))
{
const SaveViewAction *saveView = (const SaveViewAction *)obj;
// Delete the views from the interface.
DeleteViewsFromInterface();
for(int i = 0; i < saveView->views.size(); ++i)
{
void *newView = 0;
if(saveView->views[i].viewType == VIEWCurve)
{
avtViewCurve *v = (avtViewCurve *)saveView->views[i].view;
newView = (void *) new avtViewCurve(*v);
}
else if(saveView->views[i].viewType == VIEW2D)
{
avtView2D *v = (avtView2D *)saveView->views[i].view;
newView = (void *) new avtView2D(*v);
}
else
{
avtView3D *v = (avtView3D *)saveView->views[i].view;
newView = (void *) new avtView3D(*v);
}
if(newView)
{
AddNewView(newView, saveView->views[i].viewType);
retval = true;
}
}
UpdateConstruction();
}
return retval;
}
// ****************************************************************************
// Method: SaveViewAction::SaveCurrentView
//
......
......@@ -164,6 +164,9 @@ public:
// Brad Whitlock, Thu Aug 14 16:12:22 PST 2003
// I added DeleteViewsFromInterface.
//
// Brad Whitlock, Wed Apr 27 15:15:35 PST 2005
// I added CopyFrom.
//
// ****************************************************************************
class VIEWER_API SaveViewAction : public ViewerMultipleAction
......@@ -185,6 +188,8 @@ public:
virtual void Execute(int);
virtual bool CopyFrom(const ViewerActionBase *);
virtual bool Enabled() const;
virtual bool ChoiceEnabled(int i) const;
virtual bool ChoiceToggled(int i) const { return false;}
......
......@@ -31,6 +31,9 @@ class ViewerWindowManager;
// Brad Whitlock, Fri Apr 15 09:10:55 PDT 2005
// I added SetRPCType, GetArgs.
//
// Brad Whitlock, Wed Apr 27 15:13:38 PST 2005
// I added CopyFrom.
//
// ****************************************************************************
class VIEWER_API ViewerActionBase : public QObject
......@@ -46,6 +49,9 @@ public:
virtual void Execute() = 0;
virtual void Update() = 0;
virtual bool CopyFrom(const ViewerActionBase *)
{ return false; }
virtual bool Enabled() const { return true; }
virtual bool VisualEnabled() const { return allowVisualRepresentation; }
virtual bool MenuTopLevel() const { return false; }
......
......@@ -460,6 +460,32 @@ ViewerActionManager::~ViewerActionManager()
delete [] actions;
}
// ****************************************************************************
// Method: ViewerActionManager::CopyFrom
//
// Purpose:
// Copies action attributes from 1 action manager to this action manager.
//
// Arguments:
// mgr : The source action manager.
//
// Programmer: Brad Whitlock
// Creation: Fri Apr 15 17:27:05 PST 2005
//
// Modifications:
//
// ****************************************************************************
void
ViewerActionManager::CopyFrom(const ViewerActionManager *mgr)
{
for(int i = 0; i < (int)ViewerRPC::MaxRPC; ++i)
{
if(actions[i] != 0 && mgr->actions[i] != 0)
actions[i]->CopyFrom(mgr->actions[i]);
}
}
// ****************************************************************************
// Method: ViewerActionManager::EnableActions
//
......
......@@ -38,6 +38,9 @@ typedef ViewerRPC::ViewerRPCType ActionIndex;
// Brad Whitlock, Tue Mar 16 14:25:11 PST 2004
// I added an argument to RealizeActionGroups.
//
// Brad Whitlock, Fri Apr 15 17:08:31 PST 2005
// I added CopyFrom.
//
// ****************************************************************************
class VIEWER_API ViewerActionManager
......@@ -65,6 +68,8 @@ public:
ViewerActionManager(ViewerWindow *window);
virtual ~ViewerActionManager();
void CopyFrom(const ViewerActionManager *);
void HandleAction(const ViewerRPC &rpc);
void Update();
void UpdateSingleWindow();
......
......@@ -60,10 +60,11 @@ extern ViewerSubject *viewerSubject;
#define QUERY_VECTOR_VAR 0x0004
#define QUERY_TENSOR_VAR 0x0008
#define QUERY_SYMMETRIC_TENSOR_VAR 0x0010
#define QUERY_MATERIAL_VAR 0x0020
#define QUERY_MATSPECIES_VAR 0x0040
#define QUERY_CURVE_VAR 0x0080
#define QUERY_UNKNOWN_VAR 0x0100
#define QUERY_LABEL_VAR 0x0020
#define QUERY_MATERIAL_VAR 0x0040
#define QUERY_MATSPECIES_VAR 0x0080
#define QUERY_CURVE_VAR 0x0100
#define QUERY_UNKNOWN_VAR 0x0200
......
......@@ -489,6 +489,9 @@ ViewerWindowManager::SetGeometry(const char *windowGeometry)
// Brad Whitlock, Thu Feb 17 14:23:24 PST 2005
// Added bool to ViewerPlotList::CopyFrom.
//
// Brad Whitlock, Fri Apr 15 17:06:49 PST 2005
// Added code to copy action data.
//
// ****************************************************************************
void
......@@ -520,6 +523,7 @@ ViewerWindowManager::AddWindow(bool copyAtts)
dest->CopyLightList(src);
dest->CopyViewAttributes(src);
dest->GetPlotList()->CopyFrom(src->GetPlotList(), true);
dest->GetActionManager()->CopyFrom(src->GetActionManager());
}
referenced[windowIndex] = true;
......@@ -3383,6 +3387,10 @@ ViewerWindowManager::UpdateColorTable(const char *ctName)
// Modified the routine to use both the width and height for the window
// size, instead of using with width for both.
//
// Brad Whitlock, Wed Apr 27 16:48:04 PST 2005
// Changed the code so window layout 1 is handled specially and we get the
// active window showing instead of window 1.
//
// ****************************************************************************
void
......@@ -3411,61 +3419,76 @@ ViewerWindowManager::SetWindowLayout(const int windowLayout)
layout = windowLayout;
layoutIndex = iLayout;
//
// Create at least "layout" windows layed out in the appropriate grid.
// If there are already more windows than the layout calls for then
// put the first "layout" window in the grid and layout the remaining
// windows down a diagonal through the grid.
//
int iWindow;
int nWindowsShort;
int nWindowsProcessed;
nWindowsShort = layout - nWindows;
nWindowsProcessed = 0;
for (iWindow = 0; iWindow < maxWindows; iWindow++)
if(layoutIndex == 0)
{
int x, y;
int width, height;
for (int iWindow = 0; iWindow < maxWindows; iWindow++)
{
if(windows[iWindow] != 0