Commit e2c35547 authored by hrchilds's avatar hrchilds

Update from October 22, 2004

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@345 18c085ea-50e0-402c-830e-de6fd14e8384
parent faf320e9
......@@ -11,12 +11,12 @@ commands needed to build the libraries and VisIt from this file into your
shell prompt.
Library Version Description For More information
Library Version Description For More Information
======= ======= =========== ====================
Mesa 5.0 3-D Graphics Library http://www.mesa3d.org/
Python 2.1.2 Scripting Language http://www.python.org
Qt 3.3.2 GUI Toolkit http://www.trolltech.com
Silo 4.4 File I/O library http://www.llnl.gov/bdiv/meshtv
Silo 4.4.1 File I/O library http://www.llnl.gov/bdiv/meshtv
VTK 20031028 Visualization Toolkit http://www.kitware.com
......@@ -28,17 +28,24 @@ version of Mesa. The distribution provided has already been set up to build
a mangled version so no additional work is required if you use it. For VTK,
you must use the October 28, 2003 distribution provided. The version of Qt
used to build VisIt must be greater than or equal to 2.3.0. VisIt is also
compatible with Qt version 3.
compatible with Qt versions 3.0.2 or later.
VisIt also contains many database readers which are also built on external
libraries. If you want to make use of these readers you will also need to
build and install those libraries prior to building VisIt.
Library Version Description For More information
Library Version Description For More Information
======= ======= =========== ====================
Boxlib ??? An AMR I/O library ???
HDF5 1.6.0 File I/O library http://hdf.ncsa.uiuc.edu/HDF5/
Mili 1.06 File I/O library (none)
Most of the third party libraries necessary to build VisIt are available for
download from ftp://ftp.llnl.gov/pub/visit/3rd_party. It is suggested that
you start there and then go to the "For More Information" web sites for
any remaining libraries.
Building VisIt
===============
......@@ -53,7 +60,7 @@ operating systems. It is suggested that you use the same compilers.
Operating System Compiler
================ ========
AIX 5.1 g++ 3.2.3
AIX 5.1 g++ 3.1
IRIX64 6.5 MIPSpro 7.3.1.2m and MIPSpro 7.4
Linux 7.1 and 7.2 g++ 2.96 or g++ 3.2.3
Solaris 7 g++ 2.95.2 or g++ 3.2
......@@ -65,7 +72,7 @@ compile VisIt or will generate bad code.
Operating System Compiler
================ ========
Linux 7.1 and 7.2 g++ 3.3 -> 3.3.3
AIX 5.1 g++ 3.3 -> 3.3.3
AIX 5.1 g++ 3.2.3 -> 3.3.3
It is essential that you build all the dependent packages and VisIt using
the same c++ compiler or you will encounter linking problems because different
......@@ -538,8 +545,8 @@ Silo is one of the file formats supported by VisIt. Follow the directions
listed below to build Silo. If you have any problems building or installing
Silo, read the BUILD_NOTES file in the Silo distribution for more information.
On itanium (ia64) systems, the -fpic flag is needed. You can replace
CFLAGS=-O2 with CFLAGS="-fpic -O2" in the configure command below.
On itanium (ia64) systems, the -fPIC flag is needed. You can replace
CFLAGS=-O2 with CFLAGS="-fPIC -O2" in the configure command below.
On irix systems, if you want to build a 64 bit version you can replace
CFLAGS=-O2 with CFLAGS="-64 -O2" in the configure command below.
......@@ -547,8 +554,8 @@ CFLAGS=-O2 with CFLAGS="-64 -O2" in the configure command below.
#
# Build Silo
#
sh silo040308.sh
cd silo040308
sh silo041018.sh
cd silo041018
env CFLAGS=-O2 ./configure --without-readline --without-hdf5 --without-exodus
make
......@@ -556,12 +563,12 @@ make
# Install it in the visit directory under the silo directory.
#
mkdir $VISITDIR/silo
mkdir $VISITDIR/silo/4.4
mkdir $VISITDIR/silo/4.4/$VISITARCH
mkdir $VISITDIR/silo/4.4/$VISITARCH/{include,lib}
cp silo/silo/silo.{h,inc} $VISITDIR/silo/4.4/$VISITARCH/include
cp silo/sdx/sdx.{h,inc} $VISITDIR/silo/4.4/$VISITARCH/include
cp lib/libsilo.a $VISITDIR/silo/4.4/$VISITARCH/lib
mkdir $VISITDIR/silo/4.4.1
mkdir $VISITDIR/silo/4.4.1/$VISITARCH
mkdir $VISITDIR/silo/4.4.1/$VISITARCH/{include,lib}
cp silo/silo/silo.{h,inc} $VISITDIR/silo/4.4.1/$VISITARCH/include
cp silo/sdx/sdx.{h,inc} $VISITDIR/silo/4.4.1/$VISITARCH/include
cp lib/libsilo.a $VISITDIR/silo/4.4.1/$VISITARCH/lib
cd ..
......@@ -576,13 +583,13 @@ directions listed below to build Python. If you have any problems building
or installing Python, read the README file in the Python distribution for more
information.
On itanium (ia64) systems, the -fpic flag is needed. To add this flag to
On itanium (ia64) systems, the -fPIC flag is needed. To add this flag to
python's build, do the following: (1) Follow the commands below until the
configure step. Execute configure as given. (2) Look at the Makefile and
find the value of the variable OPT. (3) Re-execute configure with OPT
specified through the env command, with -fpic added to OPT. For example:
specified through the env command, with -fPIC added to OPT. For example:
env OPT="-fpic -O2" ./configure --prefix=$VISITDIR/python/$VISITARCH
env OPT="-fPIC -O2" ./configure --prefix=$VISITDIR/python/$VISITARCH
where the "-O2" was the value of OPT in the makefile. (4) Continue with
the commands below as given.
......@@ -659,6 +666,117 @@ cp src/libmili.a $VISITDIR/mili/1.06/$VISITARCH
cp src/libgahl.a $VISITDIR/mili/1.06/$VISITARCH
cd ..
#
# Build HDF5.
#
gunzip hdf5-1.6.0.tar.gz
tar xf hdf5-1.6.0.tar
cd hdf5-1.6.0
HDF5 will by default want to use the vendor supplied compiler so you will
probably need to specify the compiler. This can be done by preceding the
configure command with "env CC=compiler_name".
On Linux systems you will need to add -fPIC to the compile flags. This
can done by preceding the configure command with "env CFLAGS=-fPIC".
./configure --disable-shared -prefix=$VISITDIR/hdf5/1.6.0/$VISITARCH
make
#
# Install it in the visit directory under the hdf5 directory.
#
mkdir $VISITDIR/hdf5
mkdir $VISITDIR/hdf5/1.6.0
mkdir $VISITDIR/hdf5/1.6.0/$VISITARCH
make install
cd ..
#
# Build Boxlib.
#
gunzip boxlib.tar.gz
tar xf boxlib.tar
cd CCSEApps/BoxLib
Boxlib does not work on Solaris or Irix systems. We had to modify boxlib
to use it with VisIt so you will need to contact us for the source code if
you wish to build it.
On Itanium systems you will need to modify FPC.cpp and whereever you see
a reference to "__i486__", you will need to add an appropriate reference to
"__ia64__".
On Linux systems you will also need to add -fPIC to the compile flags.
This can done by adding the line "CXXFLAGS += -fPIC" near the top of the
file GNUmakefile.
On systems using MPI 2.0 (altix), you will need to change the following 3
lines
typedef int MPI_Op;
typedef int MPI_Comm;
typedef int MPI_Datatype;
to
typedef unsigned int MPI_Op;
typedef unsigned int MPI_Comm;
typedef unsigned int MPI_Datatype;
in the file ccse-mpi.H.
#
# Boxlib builds either a 2d or 3d version and VisIt needs both, so you will
# need to build the 3d version, install it and then build the 2d version and
# install it.
#
# You will need to modify GNUmakefile to set the compiler. Typically, this
# will involve replacing "KCC" with the name of your c++ compiler in the
# line "COMP = KCC".
#
#
# Start off by building the 3d version.
#
make -f GNUmakefile
#
# Install the 3d version in the visit directory under the boxlib directory.
#
mkdir $VISITDIR/boxlib
mkdir $VISITDIR/boxlib/$VISITARCH
mkdir $VISITDIR/boxlib/$VISITARCH/{include,lib}
mkdir $VISITDIR/boxlib/$VISITARCH/include/{2D,3D}
cp libbox3d*.a $VISITDIR/boxlib/$VISITARCH/lib/libbox3D.a
#
# Now build the 2d version.
#
make clean
#
# You will need to modify the GNUmakefile to set the dimension to 2. This
# will involve replacing "3" with "2" in the line "DIM = 3".
#
make -f GNUmakefile
#
# Install the 2d version in the visit directory under the boxlib directory.
#
cp libbox2d*.a $VISITDIR/boxlib/$VISITARCH/lib/libbox2D.a
#
# Install the header files.
#
cp Boxlib2D.h.tar $VISITDIR/boxlib/$VISITARCH/include/2D
cp Boxlib3D.h.tar $VISITDIR/boxlib/$VISITARCH/include/3D
cd $VISITDIR/boxlib/$VISITARCH/include/2D
tar xf Boxlib2D.h.tar
cd $VISITDIR/boxlib/$VISITARCH/include/3D
tar xf Boxlib3D.h.tar
cd $VISITDIR
cd ..
VisIt
======
......@@ -669,7 +787,7 @@ configure that tests your system for various libraries and programs required
to build VisIt. Follow the directions listed below to build VisIt.
More information about building VisIt follows after that.
Note: for Itanium (ia64) systems, add the -fpic flag to the CXXFLAGS in the
Note: for Itanium (ia64) systems, add the -fPIC flag to the CXXFLAGS in the
env command for configure.
#
......@@ -689,6 +807,7 @@ clearcase_bin/visit-bin-dist
clearcase_bin/visit-install 1.3.5 aix $VISITDIR
clearcase_bin/visit-install 1.3.5 irix6 $VISITDIR
clearcase_bin/visit-install 1.3.5 linux $VISITDIR
clearcase_bin/visit-install 1.3.5 linux-ia64 $VISITDIR
clearcase_bin/visit-install 1.3.5 osf1 $VISITDIR
clearcase_bin/visit-install 1.3.5 sunos5 $VISITDIR
......
......@@ -22,16 +22,16 @@ commands needed to build the libraries and VisIt from this file into your
shell prompt.
Library Version Description For More information
Library Version Description For More Information
======= ======= =========== ====================
Mesa 5.0.2 3-D Graphics Library http://www.mesa3d.org/
Python 2.3.3 Scripting Language http://www.python.org
Qt 3.3.1 GUI Toolkit http://www.trolltech.com
Silo 4.4 File I/O library http://www.llnl.gov/bdiv/meshtv
Silo 4.4.1 File I/O library http://www.llnl.gov/bdiv/meshtv
VTK 20031028 Visualization Toolkit http://www.kitware.com
HDF5 1.6.0 I/O library http://hdf.ncsa.uiuc.edu/HDF5/
Optional Version Description For More information
Optional Version Description For More Information
======== ======= =========== ====================
Mili 1.06 I/O library (none)
......@@ -41,8 +41,13 @@ all the packages except VTK and Qt, you can probably use newer versions of the
packages and VisIt should work properly. For Mesa, you must build a mangled
version of Mesa. The distribution provided has already been set up to build
a mangled version so no additional work is required if you use it. For VTK,
you must use the October 28, 2003 distribution provided. The version of Qt used to
build VisIt on MacOS X must be greater than or equal to 3.0.
you must use the October 28, 2003 distribution provided. The version of Qt
used to build VisIt on MacOS X must be greater than or equal to 3.0.
Most of the third party libraries necessary to build VisIt are available for
download from ftp://ftp.llnl.gov/pub/visit/3rd_party. It is suggested that
you start there and then go to the "For More Information" web sites for
any remaining libraries.
It is essential that you build all the dependent packages and VisIt using
the same c++ compiler or you will encounter linking problems because different
......@@ -496,8 +501,8 @@ offsets will not be affected since the HDF5 version of the Silo library
should be larger.
# Build silo source into an archive library
sh silo020325.sh
cd silo020325
sh silo041018.sh
cd silo041018
# Set the values of some helper variables (tcsh)
set HDF5INCLUDE=$VISITDIR/hdf5/include
set HDF5LIB=$VISITDIR/hdf5/lib
......@@ -510,7 +515,7 @@ cd lib
mkdir tmplib
cd tmplib
ar -x ../libsilo.a
gcc -dynamiclib -prebind -twolevel_namespace -Wl,-seg1addr,0x22714000,-install_name,@executable_path/../lib/libsilo.dylib,-compatibility_version,4.3.2,-current_version,4.3.2 -o ../libsilo.dylib *.o -L$HDF5LIB -lhdf5
gcc -dynamiclib -prebind -twolevel_namespace -Wl,-seg1addr,0x22714000,-install_name,@executable_path/../lib/libsilo.dylib,-compatibility_version,4.4.1,-current_version,4.4.1 -o ../libsilo.dylib *.o -L$HDF5LIB -lhdf5
cd ..
# Install Silo
......
......@@ -12,7 +12,7 @@
<Field name="id" type="stringVector">Streamline_1.0 InverseGhostZone_1.0 </Field>
<Field name="enabled" type="intVector">0 0 </Field>
</Object>
<Object name="HostProfileList" childObjects="30">
<Object name="HostProfileList" childObjects="29">
<Object name="HostProfile" childObjects="0">
<Field name="profileName" type="string">serial</Field>
<Field name="host" type="string">alc.llnl.gov</Field>
......@@ -81,8 +81,8 @@
</Object>
<Object name="HostProfile" childObjects="0">
<Field name="profileName" type="string">serial</Field>
<Field name="host" type="string">blue.llnl.gov</Field>
<Field name="hostAliases" type="string">blue.pacific.llnl.gov blue###.pacific.llnl.gov</Field>
<Field name="host" type="string">davinci.nersc.gov</Field>
<Field name="hostAliases" type="string">davinci</Field>
<Field name="timeout" type="int">480</Field>
<Field name="numProcessors" type="int">1</Field>
<Field name="numNodesSet" type="bool">false</Field>
......@@ -98,51 +98,29 @@
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">true</Field>
<Field name="arguments" type="stringVector">-dir /usr/gapps/visit </Field>
<Field name="arguments" type="stringVector"></Field>
<Field name="parallel" type="bool">false</Field>
</Object>
<Object name="HostProfile" childObjects="0">
<Field name="profileName" type="string">parallel pdebug</Field>
<Field name="host" type="string">blue.llnl.gov</Field>
<Field name="hostAliases" type="string">blue.pacific.llnl.gov blue###.pacific.llnl.gov</Field>
<Field name="profileName" type="string">parallel</Field>
<Field name="host" type="string">davinci.nersc.gov</Field>
<Field name="hostAliases" type="string">davinci</Field>
<Field name="timeout" type="int">480</Field>
<Field name="numProcessors" type="int">4</Field>
<Field name="numNodesSet" type="bool">true</Field>
<Field name="numNodes" type="int">1</Field>
<Field name="partitionSet" type="bool">true</Field>
<Field name="partition" type="string">blue,pdebug</Field>
<Field name="bankSet" type="bool">true</Field>
<Field name="bank" type="string">bdivp</Field>
<Field name="timeLimitSet" type="bool">true</Field>
<Field name="timeLimit" type="string">30m</Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">psub</Field>
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">false</Field>
<Field name="arguments" type="stringVector">-dir /usr/gapps/visit </Field>
<Field name="parallel" type="bool">true</Field>
</Object>
<Object name="HostProfile" childObjects="0">
<Field name="profileName" type="string">parallel pbatch</Field>
<Field name="host" type="string">blue.llnl.gov</Field>
<Field name="hostAliases" type="string">blue.pacific.llnl.gov blue###.pacific.llnl.gov</Field>
<Field name="timeout" type="int">480</Field>
<Field name="numProcessors" type="int">16</Field>
<Field name="numNodesSet" type="bool">true</Field>
<Field name="numNodes" type="int">4</Field>
<Field name="partitionSet" type="bool">true</Field>
<Field name="partition" type="string">blue,pbatch</Field>
<Field name="bankSet" type="bool">true</Field>
<Field name="bank" type="string">bdivp</Field>
<Field name="timeLimitSet" type="bool">true</Field>
<Field name="timeLimit" type="string">30m</Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">psub</Field>
<Field name="numNodesSet" type="bool">false</Field>
<Field name="numNodes" type="int">0</Field>
<Field name="partitionSet" type="bool">false</Field>
<Field name="partition" type="string"></Field>
<Field name="bankSet" type="bool">false</Field>
<Field name="bank" type="string"></Field>
<Field name="timeLimitSet" type="bool">false</Field>
<Field name="timeLimit" type="string"></Field>
<Field name="launchMethodSet" type="bool">false</Field>
<Field name="launchMethod" type="string"></Field>
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">false</Field>
<Field name="arguments" type="stringVector">-dir /usr/gapps/visit </Field>
<Field name="arguments" type="stringVector"></Field>
<Field name="parallel" type="bool">true</Field>
</Object>
<Object name="HostProfile" childObjects="0">
......
This diff is collapsed.
......@@ -533,6 +533,9 @@ Definition:
// Mark C. Miller, Tue Aug 24 19:37:14 PDT 2004
// Added code to reset blockPieceName and groupPieceName
//
// Kathleen Bonnell, Thu Oct 21 15:17:05 PDT 2004
// Reset requiresPickGlyph.
//
// ****************************************************************************
void
......@@ -594,6 +597,7 @@ PickAttributes::PrepareForNewPick()
includeGhosts = false;
elementIsGhost = false;
requiresGlyphPick = false;
}
Function: SetFromNode
......
......@@ -15,7 +15,7 @@ class PickVarInfo;
// Notes: Autogenerated by xml2atts.
//
// Programmer: xml2atts
// Creation: Thu Sep 23 09:46:21 PDT 2004
// Creation: Thu Oct 21 15:17:54 PST 2004
//
// Modifications:
//
......@@ -124,6 +124,7 @@ public:
void SetGhosts(const intVector &ghosts_);
void SetIncludeGhosts(bool includeGhosts_);
void SetElementIsGhost(bool elementIsGhost_);
void SetRequiresGlyphPick(bool requiresGlyphPick_);
// Property getting methods
const stringVector &GetVariables() const;
......@@ -200,6 +201,7 @@ public:
intVector &GetGhosts();
bool GetIncludeGhosts() const;
bool GetElementIsGhost() const;
bool GetRequiresGlyphPick() const;
// Persistence methods
virtual bool CreateNode(DataNode *node, bool completeSave, bool forceAdd);
......@@ -288,6 +290,7 @@ private:
intVector ghosts;
bool includeGhosts;
bool elementIsGhost;
bool requiresGlyphPick;
};
#endif
......@@ -156,6 +156,9 @@
<Field name="elementIsGhost" label="elementIsGhost" type="bool" internal="true">
false
</Field>
<Field name="requiresGlyphPick" label="requiresGlyphPick" type="bool" internal="true">
false
</Field>
<Function name="PrintSelf" user="true" member="true">
</Function>
<Function name="CreateOutputString" user="true" member="true">
......
......@@ -96,6 +96,11 @@ avtCondenseDatasetFilter::~avtCondenseDatasetFilter()
// Allow execution of relevant points filter to be forced, bypassing
// heurisitic.
//
// Kathleen Bonnell, Tue Oct 12 16:06:20 PDT 2004
// Allow avtOriginalNodeNumbers and avtOriginalCellNumbers to be kept
// around, independent of the value of keepAVTandVTK. Needed by pick for
// Vector Plots and Point Meshes.
//
// ****************************************************************************
vtkDataSet *
......@@ -110,6 +115,8 @@ avtCondenseDatasetFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
no_vars->ShallowCopy(in_ds);
if (!keepAVTandVTK)
{
bool keepNodeZone =
GetInput()->GetInfo().GetAttributes().GetKeepNodeZoneArrays();
for (i = no_vars->GetPointData()->GetNumberOfArrays()-1 ; i >= 0 ; i--)
{
vtkDataArray *arr = no_vars->GetPointData()->GetArray(i);
......@@ -119,7 +126,14 @@ avtCondenseDatasetFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
if (strstr(name, "vtk") != NULL)
no_vars->GetPointData()->RemoveArray(name);
else if (strstr(name, "avt") != NULL)
no_vars->GetPointData()->RemoveArray(name);
{
if (keepNodeZone &&
((strcmp(name, "avtOriginalNodeNumbers") == 0) ||
(strcmp(name, "avtOriginalCellNumbers") == 0)))
continue;
else
no_vars->GetPointData()->RemoveArray(name);
}
}
for (i = no_vars->GetCellData()->GetNumberOfArrays()-1 ; i >= 0 ; i--)
{
......@@ -130,7 +144,14 @@ avtCondenseDatasetFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
if (strstr(name, "vtk") != NULL)
no_vars->GetCellData()->RemoveArray(name);
else if (strstr(name, "avt") != NULL)
no_vars->GetCellData()->RemoveArray(name);
{
if (keepNodeZone &&
((strcmp(name, "avtOriginalNodeNumbers") == 0) ||
(strcmp(name, "avtOriginalCellNumbers") == 0)))
continue;
else
no_vars->GetCellData()->RemoveArray(name);
}
}
}
......
......@@ -66,6 +66,9 @@ using std::sort;
// Kathleen Bonnell, Tue Jun 1 15:08:30 PDT 2004
// Initialize containsOriginalNodes, invTransform, canUseInvTransform.
//
// Kathleen Bonnell, Tue Oct 12 16:11:15 PDT 2004
// Initialize keepNodeZoneArrays.
//
// ****************************************************************************
avtDataAttributes::avtDataAttributes()
......@@ -95,8 +98,9 @@ avtDataAttributes::avtDataAttributes()
filename = "<unknown>";
containsGhostZones = AVT_MAYBE_GHOSTS;
containsOriginalCells = false;
containsOriginalNodes = false;
containsOriginalCells = false;
containsOriginalNodes = false;
keepNodeZoneArrays = false;
SetTopologicalDimension(3);
SetSpatialDimension(3);
......@@ -501,6 +505,10 @@ avtDataAttributes::Print(ostream &out)
//
// Mark C. Miller, Tue Sep 28 19:57:42 PDT 2004
// Added selectionsApplied
//
// Kathleen Bonnell, Tue Oct 12 16:11:15 PDT 2004
// Added keepNodeZoneArrays.
//
// ****************************************************************************
void
......@@ -567,6 +575,7 @@ avtDataAttributes::Copy(const avtDataAttributes &di)
SetContainsGhostZones(di.GetContainsGhostZones());
SetContainsOriginalCells(di.GetContainsOriginalCells());
SetContainsOriginalNodes(di.GetContainsOriginalNodes());
SetKeepNodeZoneArrays(di.GetKeepNodeZoneArrays());
CopyInvTransform(di.invTransform);
canUseInvTransform = di.canUseInvTransform;
CopyTransform(di.transform);
......@@ -644,6 +653,9 @@ avtDataAttributes::Copy(const avtDataAttributes &di)
// Mark C. Miller, Tue Sep 28 19:57:42 PDT 2004
// Added selectionsApplied
//
// Kathleen Bonnell, Tue Oct 12 16:11:15 PDT 2004
// Added keepNodeZoneArrays.
//
// ****************************************************************************
void
......@@ -779,6 +791,10 @@ avtDataAttributes::Merge(const avtDataAttributes &da,
{
SetContainsOriginalNodes(da.GetContainsOriginalNodes());
}
if (!GetKeepNodeZoneArrays())
{
SetKeepNodeZoneArrays(da.GetKeepNodeZoneArrays());
}
canUseCumulativeAsTrueOrCurrent &= da.canUseCumulativeAsTrueOrCurrent;
......@@ -1582,6 +1598,9 @@ avtDataAttributes::SetTime(double d)
// Mark C. Miller, Tue Sep 28 19:57:42 PDT 2004
// Added selectionsApplied
//
// Kathleen Bonnell, Tue Oct 12 16:11:15 PDT 2004
// Added keepNodeZoneArrays.
//
// ****************************************************************************
void
......@@ -1590,7 +1609,7 @@ avtDataAttributes::Write(avtDataObjectString &str,
{
int i;
int numVals = 16 + 3*variables.size();
int numVals = 17 + 3*variables.size();
int *vals = new int[numVals];
vals[0] = topologicalDimension;
vals[1] = spatialDimension;
......@@ -1602,17 +1621,18 @@ avtDataAttributes::Write(avtDataObjectString &str,
vals[7] = (int) containsGhostZones;
vals[8] = (containsOriginalCells ? 1 : 0);
vals[9] = (containsOriginalNodes ? 1 : 0);
vals[10] = (canUseInvTransform ? 1 : 0);
vals[11] = (canUseTransform ? 1 : 0);
vals[12] = (canUseCumulativeAsTrueOrCurrent ? 1 : 0);
vals[13] = windowMode;
vals[14] = activeVariable;
vals[15] = variables.size();
vals[10] = (keepNodeZoneArrays ? 1 : 0);
vals[11] = (canUseInvTransform ? 1 : 0);
vals[12] = (canUseTransform ? 1 : 0);
vals[13] = (canUseCumulativeAsTrueOrCurrent ? 1 : 0);
vals[14] = windowMode;
vals[15] = activeVariable;
vals[16] = variables.size();
for (i = 0 ; i < variables.size() ; i++)
{
vals[16+3*i] = variables[i].dimension;
vals[16+3*i+1] = variables[i].centering;
vals[16+3*i+2] = (variables[i].treatAsASCII ? 1 : 0);
vals[17+3*i] = variables[i].dimension;
vals[17+3*i+1] = variables[i].centering;
vals[17+3*i+2] = (variables[i].treatAsASCII ? 1 : 0);
}
wrtr->WriteInt(str, vals, numVals);
wrtr->WriteDouble(str, dtime);
......@@ -1745,6 +1765,9 @@ avtDataAttributes::Write(avtDataObjectString &str,
// Mark C. Miller, Tue Sep 28 19:57:42 PDT 2004
// Added selectionsApplied
//
// Kathleen Bonnell, Tue Oct 12 16:11:15 PDT 2004
// Added keepNodeZoneArrays.
//
// ****************************************************************************
int
......@@ -1795,6 +1818,10 @@ avtDataAttributes::Read(char *input)
input += sizeof(int); size += sizeof(int);
SetContainsOriginalNodes(tmp != 0 ? true : false);
memcpy(&tmp, input, sizeof(int));
input += sizeof(int); size += sizeof(int);
SetKeepNodeZoneArrays(tmp != 0 ? true : false);
memcpy(&tmp, input, sizeof(int));
input += sizeof(int); size += sizeof(int);
SetCanUseInvTransform(tmp != 0 ? true : false);
......
......@@ -122,6 +122,9 @@ class avtExtents;
// Mark C. Miller, Tue Sep 28 19:57:42 PDT 2004
// Added support for data selections that are applied by plugins
//
// Kathleen Bonnell, Tue Oct 12 16:11:15 PDT 2004
// Added keepNodeZoneArrays and Set/Get methods.
//
// ****************************************************************************
class PIPELINE_API avtDataAttributes
......@@ -212,6 +215,10 @@ class PIPELINE_API avtDataAttributes
{ return containsOriginalNodes; };
void SetContainsOriginalNodes(bool c)
{ containsOriginalNodes= c; };
bool GetKeepNodeZoneArrays(void) const
{ return keepNodeZoneArrays; };
void SetKeepNodeZoneArrays(bool k)
{ keepNodeZoneArrays= k; };
bool GetDataExtents(double *, const char * = NULL);
bool GetCurrentDataExtents(double *,
......@@ -286,6 +293,7 @@ class PIPELINE_API avtDataAttributes
avtGhostType containsGhostZones;
bool containsOriginalCells;
bool containsOriginalNodes;
bool keepNodeZoneArrays;
avtMatrix *invTransform;
bool canUseInvTransform;
avtMatrix *transform;
......
......@@ -846,3 +846,44 @@ avtActor::OpaqueVisibilityOff()
drawable->VisibilityOff();
}
// ****************************************************************************
// Method: avtActor::MakePickable
//
// Purpose:
// Tells the drawable to make its vtkActors pickable.
//
// Programmer: Kathleen Bonnell
// Creation: September 27, 2004
//
// ****************************************************************************
void
avtActor::MakePickable()
{
if (*(drawable) != NULL)
{
drawable->MakePickable();
}
}
// ****************************************************************************
// Method: avtActor::MakeUnPickable
//
// Purpose:
// Tells the drawable to make its vtkActors unpickable.
//
// Programmer: Kathleen Bonnell
// Creation: September 27, 2004
//
// ****************************************************************************
void
avtActor::MakeUnPickable()
{
if (*(drawable) != NULL)
{
drawable->MakeUnPickable();
}
}
......@@ -85,6 +85,9 @@ class avtTransparencyActor;
// error-prone (and easier and more efficient) to turn off the entire
// avtTransparencyActor at once.
//
// Kathleen Bonnell, Mon Sep 27 10:19:11 PDT 2004
// Added MakePickable and MakeUnPickable.
//
// ****************************************************************************
class PLOTTER_API avtActor
......@@ -134,6 +137,9 @@ class PLOTTER_API avtActor
void OpaqueVisibilityOn();
void OpaqueVisibilityOff();
void MakePickable(void);
void MakeUnPickable(void);
protected:
avtBehavior_p behavior;
avtDrawable_p drawable;
......
......@@ -555,13 +555,28 @@ avtBehavior::GetRenderOrder(bool antialiased)
// transformed, and the presence of either the needed transform or
// Original Nodes/Zones array.
//
// Kathleen Bonnell, Tue Oct 12 15:58:56 PDT 2004
// Handle Vector Plots and Point meshes differently -- if the Node or Zone
// arrays weren't kept around, even if the data atts say we have them
// Condense filter will have removed them.
//