Updates will be applied today, at 4 pm EDT (UTC-0400). No interruption, and site should remain available.

Commit 6c5fa1a2 authored by hrchilds's avatar hrchilds

Update from August 13, 2004

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@301 18c085ea-50e0-402c-830e-de6fd14e8384
parent 8c9f91de
......@@ -82,6 +82,10 @@
# Hank Childs, Thu Jul 8 10:31:20 PDT 2004
# Add volume.py back to the skipList for scalable mode.
#
# Jeremy Meredith, Fri Aug 13 09:11:55 PDT 2004
# Moved /usr/local/bin ahead of /usr/bin in the PATH so it would get
# the GNU date program.
#
# ----------------------------------------------------------------------------
# list of users who want email every night with the log file
......@@ -151,7 +155,7 @@ fi
umask 002
DISPLAY=elysium:0
export DISPLAY
PATH=/home/visit/bin:/data_vobs/VisIt/clearcase_bin:/home/visit/clearcase_bin:/usr/atria/bin:/usr/security/bin:/sbin:/usr/sbin:/usr/bsd:/usr/bin:/usr/local/bin:/bin:/etc:/usr/bin/X11:/usr/local/X11:/usr/etc:/usr/lib:/usr/atria/bin:/usr/ccs/bin:/usr/SUNWspro/bin:/usr/gapps/mpich/1.2.4/SunOS/serial/default/debug/bin:.
PATH=/home/visit/bin:/data_vobs/VisIt/clearcase_bin:/home/visit/clearcase_bin:/usr/atria/bin:/usr/security/bin:/sbin:/usr/sbin:/usr/bsd:/usr/local/bin:/usr/bin:/bin:/etc:/usr/bin/X11:/usr/local/X11:/usr/etc:/usr/lib:/usr/atria/bin:/usr/ccs/bin:/usr/SUNWspro/bin:/usr/gapps/mpich/1.2.4/SunOS/serial/default/debug/bin:.
export PATH
# rebuild visit
......
......@@ -241,6 +241,9 @@ avtGenericDatabase::SetDatabaseMetaData(avtDatabaseMetaData *md, int timeState)
// Kathleen Bonnell, Wed Jun 23 17:04:23 PDT 2004
// Add TRY-CATCH, so that no process skips the parallel communication.
//
// Hank Childs, Wed Aug 11 08:14:16 PDT 2004
// Only create ghost data if it is requested.
//
// Mark C. Miller, Thu Aug 12 12:10:37 PDT 2004
// I changed behavior when processors have errors during the read phase.
// Previously, only the err'ing processor knew about and would return
......@@ -415,7 +418,18 @@ avtGenericDatabase::GetOutput(avtDataSpecification_p spec,
// boundary information.
//
bool didGhosts = false;
if (spec->GhostZonesAreAppropriate())
bool ghostDataIsNeeded = false;
if (spec->GetDesiredGhostDataType() != NO_GHOST_DATA)
ghostDataIsNeeded = true;
if (shouldDoMatSelect)
ghostDataIsNeeded = true;
bool canCreateGhostData = true;
if (spec->MustMaintainOriginalConnectivity())
canCreateGhostData = false;
if (canCreateGhostData && ghostDataIsNeeded)
{
didGhosts = CommunicateGhosts(datasetCollection, domains, spec, src);
}
......@@ -3107,6 +3121,10 @@ avtGenericDatabase::ActivateTimestep(int stateIndex)
// method to get the secondary variable list without duplicating either the
// primary variable or other secondary variables, and made use of it here.
//
// Hank Childs, Wed Aug 11 08:14:16 PDT 2004
// Do not simply remove the vtkGhostLevels array so we can pretend we don't
// have ghost zones.
//
// ****************************************************************************
void
......@@ -3328,22 +3346,6 @@ avtGenericDatabase::ReadDataset(avtDatasetCollection &ds, vector<int> &domains,
src->DatabaseProgress(i, nDomains, progressString);
}
//
// Sometimes we can't stop our readers from reading in ghost zones.
// Remove the array in that case so we don't get confused downstream.
//
if (!spec->GhostZonesAreAppropriate())
{
for (int j = 0 ; j < nDomains ; j++)
{
vtkDataSet *ds1 = ds.GetDataset(j, 0);
if (ds1 != NULL)
{
ds1->GetCellData()->RemoveArray("vtkGhostLevels");
}
}
}
src->DatabaseProgress(1, 0, progressString);
visitTimer->StopTimer(timerHandle, "Reading dataset");
......
......@@ -563,12 +563,17 @@ avtMatvfFilter::AddMaterial(ConstExpr *c)
// Programmer: Hank Childs
// Creation: October 24, 2003
//
// Modifications:
//
// Hank Childs, Wed Aug 11 08:03:38 PDT 2004
// Account for changes in the data specification.
//
// ****************************************************************************
avtPipelineSpecification_p
avtMatvfFilter::PerformRestriction(avtPipelineSpecification_p spec)
{
spec->GetDataSpecification()->NoGhostZones();
spec->GetDataSpecification()->SetMaintainOriginalConnectivity(true);
return spec;
}
......
......@@ -722,12 +722,17 @@ avtSpecMFFilter::AddSpecies(ConstExpr *c)
// Programmer: Hank Childs
// Creation: October 24, 2003
//
// Modifications:
//
// Hank Childs, Wed Aug 11 08:03:38 PDT 2004
// Account for changes in the data specification.
//
// ****************************************************************************
avtPipelineSpecification_p
avtSpecMFFilter::PerformRestriction(avtPipelineSpecification_p spec)
{
spec->GetDataSpecification()->NoGhostZones();
spec->GetDataSpecification()->SetMaintainOriginalConnectivity(true);
return spec;
}
......
......@@ -170,17 +170,26 @@ avtContourFilter::~avtContourFilter()
// Kathleen Bonnell, Thu Mar 11 11:10:07 PST 2004
// DataExtents now always have only 2 components.
//
// Hank Childs, Wed Aug 11 08:53:57 PDT 2004
// Make sure that we request ghost zones.
//
// ****************************************************************************
avtPipelineSpecification_p
avtContourFilter::PerformRestriction(avtPipelineSpecification_p in_spec)
{
int i, j;
avtPipelineSpecification_p spec = new avtPipelineSpecification(in_spec);
if (GetInput()->GetInfo().GetAttributes().GetTopologicalDimension() == 3)
spec->GetDataSpecification()->SetNeedValidFaceConnectivity(true);
int i, j;
//
// We will need the ghost zones so that we can interpolate along domain
// boundaries and get no cracks in our isosurface.
//
spec->GetDataSpecification()->SetDesiredGhostDataType(GHOST_ZONE_DATA);
if (atts.GetContourMethod() == ContourOpAttributes::Level ||
atts.GetContourMethod() == ContourOpAttributes::Percent)
......
......@@ -721,3 +721,31 @@ avtFacelistFilter::ReleaseData(void)
}
// ****************************************************************************
// Method: avtFacelistFilter::PerformRestriction
//
// Purpose:
// Tell the database that we will need ghost nodes.
//
// Programmer: Hank Childs
// Creation: August 11, 2004
//
// ****************************************************************************
avtPipelineSpecification_p
avtFacelistFilter::PerformRestriction(avtPipelineSpecification_p in_spec)
{
//
// Only declare that we want ghost nodes if someone downstream hasn't said
// that they want ghost zones and also if we are dealing with 3D data.
//
avtPipelineSpecification_p spec = new avtPipelineSpecification(in_spec);
if (spec->GetDataSpecification()->GetDesiredGhostDataType() !=
GHOST_ZONE_DATA
&& GetInput()->GetInfo().GetAttributes().GetTopologicalDimension() == 3)
spec->GetDataSpecification()->SetDesiredGhostDataType(GHOST_NODE_DATA);
return spec;
}
......@@ -52,6 +52,9 @@ class avtMultiFacelist;
// Hank Childs, Wed Oct 2 16:59:10 PDT 2002
// Removed unused data member f2d.
//
// Hank Childs, Wed Aug 11 09:46:53 PDT 2004
// Added PerformRestriction.
//
// ****************************************************************************
class AVTFILTERS_API avtFacelistFilter : public avtStreamer
......@@ -87,6 +90,8 @@ class AVTFILTERS_API avtFacelistFilter : public avtStreamer
virtual void InitializeFilter(void);
virtual void RefashionDataObjectInfo(void);
virtual avtPipelineSpecification_p PerformRestriction(
avtPipelineSpecification_p);
};
......
......@@ -324,3 +324,38 @@ avtGhostZoneAndFacelistFilter::ChangedInput(void)
}
// ****************************************************************************
// Method: avtGhostZoneAndFacelistFilter::PerformRestriction
//
// Purpose:
// Tell the database that we will need ghost nodes.
//
// Programmer: Hank Childs
// Creation: August 11, 2004
//
// ****************************************************************************
avtPipelineSpecification_p
avtGhostZoneAndFacelistFilter::PerformRestriction(
avtPipelineSpecification_p in_spec)
{
avtPipelineSpecification_p spec = in_spec;
//
// Only declare that we want ghost nodes if someone downstream hasn't said
// that they want ghost zones. Also only declare this if we are actually
// taking external faces.
//
if (useFaceFilter &&
GetInput()->GetInfo().GetAttributes().GetTopologicalDimension() == 3)
{
spec = new avtPipelineSpecification(in_spec);
if (spec->GetDataSpecification()->GetDesiredGhostDataType() !=
GHOST_ZONE_DATA)
spec->GetDataSpecification()->SetDesiredGhostDataType(
GHOST_NODE_DATA);
}
return spec;
}
......@@ -31,6 +31,9 @@ class avtFacelistFilter;
// Hank Childs, Thu Sep 6 11:14:38 PDT 2001
// Allowed for dynamic load balancing.
//
// Hank Childs, Wed Aug 11 09:46:53 PDT 2004
// Added PerformRestriction.
//
// ****************************************************************************
class AVTFILTERS_API avtGhostZoneAndFacelistFilter :
......@@ -61,6 +64,8 @@ class AVTFILTERS_API avtGhostZoneAndFacelistFilter :
virtual void RefashionDataObjectInfo(void);
virtual int AdditionalPipelineFilters(void);
virtual void ChangedInput(void);
virtual avtPipelineSpecification_p
PerformRestriction(avtPipelineSpecification_p);
};
......
......@@ -220,3 +220,23 @@ avtShiftCenteringFilter::RefashionDataObjectInfo(void)
}
// ****************************************************************************
// Method: avtShiftCenteringFilter::PerformRestriction
//
// Purpose:
// Tell the database that we will need ghost zones.
//
// Programmer: Hank Childs
// Creation: August 11, 2004
//
// ****************************************************************************
avtPipelineSpecification_p
avtShiftCenteringFilter::PerformRestriction(avtPipelineSpecification_p in_spec)
{
avtPipelineSpecification_p spec = new avtPipelineSpecification(in_spec);
spec->GetDataSpecification()->SetDesiredGhostDataType(GHOST_ZONE_DATA);
return spec;
}
......@@ -40,6 +40,9 @@ class vtkPointDataToCellData;
// Moved inlined destructor definition to .C file because certain compilers
// have problems with them.
//
// Hank Childs, Wed Aug 11 09:47:46 PDT 2004
// Added PerformRestriction.
//
// ****************************************************************************
class AVTFILTERS_API avtShiftCenteringFilter : public avtStreamer
......@@ -57,6 +60,8 @@ class AVTFILTERS_API avtShiftCenteringFilter : public avtStreamer
virtual vtkDataSet *ExecuteData(vtkDataSet *, int, std::string);
virtual void RefashionDataObjectInfo(void);
virtual avtPipelineSpecification_p
PerformRestriction(avtPipelineSpecification_p);
};
......
// ************************************************************************* //
// avtGhostData.h //
// ************************************************************************* //
#ifndef AVT_GHOST_DATA_H
#define AVT_GHOST_DATA_H
typedef enum
{
DUPLICATED_ZONE_INTERNAL_TO_PROBLEM = 0,
ENHANCED_CONNECTIVITY_ZONE = 1,
REDUCED_CONNECTIVITY_ZONE = 2,
REFINED_ZONE_IN_AMR_GRID = 3,
ZONE_EXTERIOR_TO_PROBLEM = 4,
ZONE_NOT_APPLICABLE_TO_PROBLEM = 5
} avtGhostZoneTypes;
typedef enum
{
DUPLICATED_NODE = 0,
NODE_NOT_APPLICABLE_TO_PROBLEM = 1
} avtGhostNodeTypes;
typedef enum
{
NO_GHOST_DATA = 0,
GHOST_NODE_DATA = 1,
GHOST_ZONE_DATA = 2
} avtGhostDataType;
// ****************************************************************************
// Class: avtGhostData
//
// Purpose:
// This class contains inlined methods that help centralize the logic
// for handling ghost data.
//
// Programmer: Hank Childs
// Creation: August 10, 2004
//
// ****************************************************************************
class avtGhostData
{
public:
static inline void AddGhostZoneType(unsigned char &u, avtGhostZoneTypes t)
{
unsigned char bit = (1 << t);
if (!(u & bit))
u += bit;
}
static inline void RemoveGhostZoneType(unsigned char &u,
avtGhostZoneTypes t)
{
unsigned char bit = (1 << t);
if (u & bit)
u -= bit;
}
static inline bool IsGhostZoneType(unsigned char &u, avtGhostZoneTypes t)
{
unsigned char bit = (1 << t);
return (u & bit);
}
static inline bool IsGhostZone(unsigned char &u)
{
return (u != 0);
}
static inline void AddGhostNodeType(unsigned char &u, avtGhostNodeTypes t)
{
unsigned char bit = (1 << t);
if (!(u & bit))
u += bit;
}
static inline void RemoveGhostNodeType(unsigned char &u,
avtGhostNodeTypes t)
{
unsigned char bit = (1 << t);
if (u & bit)
u -= bit;
}
static inline bool IsGhostNodeType(unsigned char &u, avtGhostNodeTypes t)
{
unsigned char bit = (1 << t);
return (u & bit);
}
static inline bool IsGhostNode(unsigned char &u)
{
return (u != 0);
}
static inline bool UseZoneForInterpolation(unsigned char &u)
{
unsigned char bit = (1 << ZONE_NOT_APPLICABLE_TO_PROBLEM);
return (u & bit);
}
static inline bool RemoveThisZoneBeforeFindingFacelist(unsigned char &u)
{
unsigned char bit1 = (1 << ZONE_EXTERIOR_TO_PROBLEM);
unsigned char bit2 = (1 << ZONE_NOT_APPLICABLE_TO_PROBLEM);
unsigned char bit = bit1 | bit2;
return (u & bit);
}
static inline bool IsZoneDuplicated(unsigned char &u)
{
unsigned char bit1 = (1 << DUPLICATED_ZONE_INTERNAL_TO_PROBLEM);
unsigned char bit2 = (1 << ENHANCED_CONNECTIVITY_ZONE);
unsigned char bit3 = (1 << REDUCED_CONNECTIVITY_ZONE);
unsigned char bit = bit1 | bit2 | bit3;
return (u & bit);
}
static inline bool IsZoneDuplicatedByCombinationOfZones(unsigned char &u)
{
unsigned char bit1 = (1 << DUPLICATED_ZONE_INTERNAL_TO_PROBLEM);
unsigned char bit2 = (1 << ENHANCED_CONNECTIVITY_ZONE);
unsigned char bit3 = (1 << REDUCED_CONNECTIVITY_ZONE);
unsigned char bit4 = (1 << REFINED_ZONE_IN_AMR_GRID);
unsigned char bit = bit1 | bit2 | bit3 | bit4;
return (u & bit);
}
static inline bool IsZoneOnExteriorOfDomain(unsigned char &u)
{
unsigned char bit1 = (1 << DUPLICATED_ZONE_INTERNAL_TO_PROBLEM);
unsigned char bit2 = (1 << ENHANCED_CONNECTIVITY_ZONE);
unsigned char bit3 = (1 << REDUCED_CONNECTIVITY_ZONE);
unsigned char bit4 = (1 << ZONE_EXTERIOR_TO_PROBLEM);
unsigned char bit = bit1 | bit2 | bit3 | bit4;
return (u & bit);
}
static inline bool CanZoneBeUsedForStatistics(unsigned char &u)
{
unsigned char bit1 = (1 << DUPLICATED_ZONE_INTERNAL_TO_PROBLEM);
unsigned char bit2 = (1 << ENHANCED_CONNECTIVITY_ZONE);
unsigned char bit3 = (1 << REDUCED_CONNECTIVITY_ZONE);
unsigned char bit4 = (1 << REFINED_ZONE_IN_AMR_GRID);
unsigned char bit = bit1 | bit2 | bit3 | bit4;
return (u & bit);
}
static inline bool DiscardFaceIfAllNodesAreOfThisType(unsigned char &u)
{
unsigned char bit1 = (1 << DUPLICATED_NODE);
unsigned char bit2 = (1 << NODE_NOT_APPLICABLE_TO_PROBLEM);
unsigned char bit = bit1 | bit2;
return (u & bit);
}
static inline bool DiscardFaceIfOneNodeIsOfThisType(unsigned char &u)
{
unsigned char bit = (1 << NODE_NOT_APPLICABLE_TO_PROBLEM);
return (u & bit);
}
static inline bool UseNodeForInterpolation(unsigned char &u)
{
unsigned char bit = (1 << DUPLICATED_NODE);
return (u & bit);
}
};
#endif
......@@ -70,6 +70,10 @@ using std::vector;
// Kathleen Bonnell, Tue Jun 1 15:08:30 PDT 2004
// Initialize mayRequireNodes.
//
// Hank Childs, Tue Aug 10 14:51:34 PDT 2004
// Remove useGhostZones, add maintainOriginalConnectivity and
// desiredGhostDataType.
//
// ****************************************************************************
avtDataSpecification::avtDataSpecification(const char *var, int ts,
......@@ -79,7 +83,6 @@ avtDataSpecification::avtDataSpecification(const char *var, int ts,
mayRequireNodes = false;
needZones = false;
needNodes = false;
useGhostZones = true;
needInternalSurfaces = false;
mustDoMIR = false;
needBoundarySurfaces = false;
......@@ -90,6 +93,8 @@ avtDataSpecification::avtDataSpecification(const char *var, int ts,
needSmoothMaterialInterfaces = false;
needCleanZonesOnly = false;
useNewMIRAlgorithm = false;
desiredGhostDataType = NO_GHOST_DATA;
maintainOriginalConnectivity = false;
timestep = ts;
......@@ -162,6 +167,10 @@ avtDataSpecification::avtDataSpecification(const char *var, int ts,
// Kathleen Bonnell, Tue Jun 1 15:08:30 PDT 2004
// Initialize mayRequireNodes.
//
// Hank Childs, Tue Aug 10 14:51:34 PDT 2004
// Remove useGhostZones, add maintainOriginalConnectivity and
// desiredGhostDataType.
//
// ****************************************************************************
avtDataSpecification::avtDataSpecification(const char *var, int ts, int ch)
......@@ -171,7 +180,6 @@ avtDataSpecification::avtDataSpecification(const char *var, int ts, int ch)
needZones = false;
needNodes = false;
mustDoMIR = false;
useGhostZones = true;
needInternalSurfaces = false;
needBoundarySurfaces = false;
needValidFaceConnectivity = false;
......@@ -181,6 +189,8 @@ avtDataSpecification::avtDataSpecification(const char *var, int ts, int ch)
needSmoothMaterialInterfaces = false;
needCleanZonesOnly = false;
useNewMIRAlgorithm = false;
desiredGhostDataType = NO_GHOST_DATA;
maintainOriginalConnectivity = false;
timestep = ts;
......@@ -382,6 +392,10 @@ avtDataSpecification::avtDataSpecification(avtDataSpecification_p spec)
// Kathleen Bonnell, Tue Jun 1 15:08:30 PDT 2004
// Added mayRequireNodes.
//
// Hank Childs, Tue Aug 10 14:51:34 PDT 2004
// Remove useGhostZones, add maintainOriginalConnectivity and
// desiredGhostDataType.
//
// ****************************************************************************
avtDataSpecification &
......@@ -417,7 +431,6 @@ avtDataSpecification::operator=(const avtDataSpecification &spec)
mayRequireZones = spec.mayRequireZones;
mayRequireNodes = spec.mayRequireNodes;
mustDoMIR = spec.mustDoMIR;
useGhostZones = spec.useGhostZones;
needZones = spec.needZones;
needNodes = spec.needNodes;
needInternalSurfaces = spec.needInternalSurfaces;
......@@ -429,6 +442,8 @@ avtDataSpecification::operator=(const avtDataSpecification &spec)
needSmoothMaterialInterfaces = spec.needSmoothMaterialInterfaces;
needCleanZonesOnly = spec.needCleanZonesOnly;
useNewMIRAlgorithm = spec.useNewMIRAlgorithm;
desiredGhostDataType = spec.desiredGhostDataType;
maintainOriginalConnectivity = spec.maintainOriginalConnectivity;
secondaryVariables = spec.secondaryVariables;
......@@ -498,6 +513,10 @@ avtDataSpecification::operator=(const avtDataSpecification &spec)
// Kathleen Bonnell, Tue Jun 1 15:08:30 PDT 2004
// Added mayRequireNodes.
//
// Hank Childs, Tue Aug 10 14:51:34 PDT 2004
// Remove useGhostZones, add maintainOriginalConnectivity and
// desiredGhostDataType.
//
// ****************************************************************************
bool
......@@ -560,7 +579,12 @@ avtDataSpecification::operator==(const avtDataSpecification &ds)
return false;
}
if (useGhostZones != ds.useGhostZones)
if (desiredGhostDataType != ds.desiredGhostDataType)
{
return false;
}
if (maintainOriginalConnectivity != ds.maintainOriginalConnectivity)
{
return false;
}
......@@ -789,28 +813,6 @@ avtDataSpecification::RemoveSecondaryVariable(const char *var)
}
// ****************************************************************************
// Method: avtDataSpecification::NoGhostZones
//
// Purpose:
// This tells the reader that ghost zones are not necessary and that if
// they weren't present, that would not be a problem. In reality, the
// ghost zones are still delivered by most readers, but the vtkGhostLevels
// array will not be sent down, meaning that processing time drops
// slightly.
//
// Programmer: Hank Childs
// Creation: November 28, 2001
//
// ****************************************************************************
void
avtDataSpecification::NoGhostZones(void)
{
useGhostZones = false;
}
// ****************************************************************************
// Method: avtDataSpecification::VariablesAreTheSame
//
......
......@@ -13,6 +13,7 @@
#include <ref_ptr.h>
#include <avtSILRestriction.h>
#include <avtGhostData.h>
class PIPELINE_API avtSILSpecification
......@@ -104,6 +105,9 @@ typedef ref_ptr<avtDataSpecification> avtDataSpecification_p;
// Jeremy Meredith, Fri Jul 9 16:49:24 PDT 2004
// Added GetSecondaryVariablesWithoutDuplicates.
//
// Hank Childs, Tue Aug 10 13:47:48 PDT 2004
// Added maintainOriginalConnectivity.
//
// ****************************************************************************
class PIPELINE_API avtDataSpecification
......@@ -192,9 +196,15 @@ class PIPELINE_API avtDataSpecification
void SetMayRequireNodes(bool val)
{ mayRequireNodes = val; };
bool GhostZonesAreAppropriate(void)
{ return useGhostZones; };
void NoGhostZones(void);
bool MustMaintainOriginalConnectivity(void)
{ return maintainOriginalConnectivity; };
void SetMaintainOriginalConnectivity(bool val)
{ maintainOriginalConnectivity = val; };
void SetDesiredGhostDataType(avtGhostDataType t)
{ desiredGhostDataType = t; };
avtGhostDataType GetDesiredGhostDataType(void)
{ return desiredGhostDataType; };
bool NeedValidFaceConnectivity()
{ return needValidFaceConnectivity; };
......@@ -247,7 +257,6 @@ class PIPELINE_API avtDataSpecification
bool needNodes;
bool mayRequireZones;
bool mayRequireNodes;
bool useGhostZones;
bool mustDoMIR;
bool needInternalSurfaces;
bool needBoundarySurfaces;
......@@ -257,6 +266,8 @@ class PIPELINE_API avtDataSpecification
bool needSmoothMaterialInterfaces;
bool needCleanZonesOnly;
bool useNewMIRAlgorithm;
bool maintainOriginalConnectivity;
avtGhostDataType desiredGhostDataType;
//
// If we are processing in parallel, this information may have been lost.
......
......@@ -465,6 +465,11 @@ VisWinRendering::StopCurveMode(void)
// Programmer: Hank Childs
// Creation: July 6, 2000
//
// Modifications:
//
// Hank Childs, Wed Aug 11 08:08:18 PDT 2004
// Add timings code.
//
// ****************************************************************************
void
......@@ -472,7 +477,10 @@ VisWinRendering::EnableUpdates(void)
{
if (needsUpdate)
{
int t1 = visitTimer->StartTimer();
Render();
visitTimer->StopTimer(t1, "Time for first render after adding plots to"
" this window.");
needsUpdate = false;
}
}
......
# Copyright 2000 - 2003
# Copyright 2000 - 2004
# The Regents of the University of California.
# All rights reserved.
#
......@@ -108,6 +108,9 @@
# Jeremy Meredith, Wed Jul 21 17:44:55 PDT 2004
# Added OVERFLOW. It depends on no other libraries.
#
# Brad Whitlock, Fri Aug 13 14:29:40 PST 2004
# Added Pixie.
#
##############################################################################
@SET_MAKE@
......@@ -119,7 +122,7 @@ BOXLIB2D=Boxlib2D