Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
third-party
visit
Commits
1f51a326
Commit
1f51a326
authored
Apr 01, 2007
by
hrchilds
Browse files
Update from March 3, 2004
git-svn-id:
http://visit.ilight.com/svn/visit/trunk/src@189
18c085ea-50e0-402c-830e-de6fd14e8384
parent
7931ec6d
Changes
45
Expand all
Hide whitespace changes
Inline
Side-by-side
BUILD_NOTES
View file @
1f51a326
...
...
@@ -456,9 +456,9 @@ env command for configure.
#
# Build and install it in the visit directory.
#
gunzip visit040
209
.tar.gz
tar xf visit040
209
.tar
cd visit040
209
/config-site
gunzip visit040
308
.tar.gz
tar xf visit040
308
.tar
cd visit040
308
/config-site
echo VISITHOME=`cat ../../visitpath` > `hostname`.conf
cat Template.conf >> `hostname`.conf
cd ..
...
...
@@ -467,11 +467,11 @@ make
clearcase_bin/visit-bin-dist
# Use the appropriate install command based on the operating system on
# which you built VisIt.
clearcase_bin/visit-install 1.2.
7
aix `cat ../visitpath`
clearcase_bin/visit-install 1.2.
7
irix6 `cat ../visitpath`
clearcase_bin/visit-install 1.2.
7
linux `cat ../visitpath`
clearcase_bin/visit-install 1.2.
7
osf1 `cat ../visitpath`
clearcase_bin/visit-install 1.2.
7
sunos5 `cat ../visitpath`
clearcase_bin/visit-install 1.2.
8
aix `cat ../visitpath`
clearcase_bin/visit-install 1.2.
8
irix6 `cat ../visitpath`
clearcase_bin/visit-install 1.2.
8
linux `cat ../visitpath`
clearcase_bin/visit-install 1.2.
8
osf1 `cat ../visitpath`
clearcase_bin/visit-install 1.2.
8
sunos5 `cat ../visitpath`
When running the configure script you can enable or disable certain dependent
packages. All the configure options are listed at the beginning of the
...
...
INSTALL_NOTES
View file @
1f51a326
...
...
@@ -17,7 +17,7 @@ Unix and Mac OS X:
where
"version" will be 1.2.
7
for the current distribution.
"version" will be 1.2.
8
for the current distribution.
"platform" will be one of the following: aix, darwin, irix6, linux,
osf1, or sunos5 depending on the machine. The one you use should
...
...
@@ -28,17 +28,17 @@ Unix and Mac OS X:
For example
visit-install 1.2.
7
irix6 /usr/local/visit
visit-install 1.2.
8
irix6 /usr/local/visit
will install the irix6, 1.2.
7
version of visit in the directory
will install the irix6, 1.2.
8
version of visit in the directory
"/usr/local/visit". Note that you will need to have the file
"visit1_2_
7
.irix6.tar.gz" present in the current directory for this
"visit1_2_
8
.irix6.tar.gz" present in the current directory for this
to function properly. You can install multiple binaries into the
same directory. For example, you could then execute
visit-install -a 1.2.
7
linux /usr/local/visit
visit-install -a 1.2.
8
linux /usr/local/visit
to add a linux, 1.2.
7
version of visit to the same directory.
to add a linux, 1.2.
8
version of visit to the same directory.
2. Add the bin directory below the installation directory
(/usr/local/visit/bin in our example) to each user's search path.
...
...
@@ -76,8 +76,8 @@ Unix and Mac OS X:
Windows:
1. Copy the file visit1.2.
7
.exe to your desktop.
1. Copy the file visit1.2.
8
.exe to your desktop.
2. Double click on the visit1.2.
7
.exe icon to run the installer.
2. Double click on the visit1.2.
8
.exe icon to run the installer.
3. Follow the directions provided by the installer.
clearcase_bin/visit-build-closed
View file @
1f51a326
...
...
@@ -247,16 +247,16 @@ fi
rm
-f
sc
cat
<<
EOF
> sc
#!/bin/sh
if test ! -d /nfs/tmp
2
/
$user
; then
mkdir /nfs/tmp
2
/
$user
if test ! -d /nfs/tmp
3
/
$user
; then
mkdir /nfs/tmp
3
/
$user
fi
if test ! -d /nfs/tmp
2
/
$user
/sc ; then
mkdir /nfs/tmp
2
/
$user
/sc
if test ! -d /nfs/tmp
3
/
$user
/sc ; then
mkdir /nfs/tmp
3
/
$user
/sc
fi
rm -rf /nfs/tmp
2
/
$user
/sc/visitbuild
mkdir /nfs/tmp
2
/
$user
/sc/visitbuild
mv sc_
$dist
.tar.gz /nfs/tmp
2
/
$user
/sc/visitbuild/
$dist
.tar.gz
cd /nfs/tmp
2
/
$user
/sc/visitbuild
rm -rf /nfs/tmp
3
/
$user
/sc/visitbuild
mkdir /nfs/tmp
3
/
$user
/sc/visitbuild
mv sc_
$dist
.tar.gz /nfs/tmp
3
/
$user
/sc/visitbuild/
$dist
.tar.gz
cd /nfs/tmp
3
/
$user
/sc/visitbuild
gunzip -c
$dist
.tar.gz | tar xvf - > buildlog 2>&1
cd
$dist
ver=
\`
cat VERSION
\`
...
...
clearcase_bin/visit-install-closed
View file @
1f51a326
...
...
@@ -253,7 +253,7 @@ if [ $sc = true ]
then
if
[
$test
=
no
]
then
scp sc1:/nfs/tmp
2
/
$user
/sc/visitbuild/visit
$ver2
.osf1.tar.gz
.
scp sc1:/nfs/tmp
3
/
$user
/sc/visitbuild/visit
$ver2
.osf1.tar.gz
.
scp visit
$ver2
.osf1.tar.gz sc1:
scp visit-install sc1:
scp sc sc1:sc_install
...
...
components/Database/Database/avtDatabase.C
View file @
1f51a326
...
...
@@ -236,7 +236,12 @@ avtDatabase::GetOutput(const char *var, int ts)
// Hank Childs, Tue Sep 23 23:03:07 PDT 2003
// Add support for tensors.
//
// Mark C. Miller, 30Sep03, added timeStep argument
// Mark C. Miller, 30Sep03
// Added timeStep argument
//
// Hank Childs, Mon Feb 23 07:49:51 PST 2004
// Update for new data attribute interface. Now add variables for each of
// the secondary variables in data specification.
//
// ****************************************************************************
...
...
@@ -246,6 +251,8 @@ avtDatabase::PopulateDataObjectInformation(avtDataObject_p &dob,
int
ts
,
avtDataSpecification
*
spec
)
{
int
i
,
j
;
int
timerHandle
=
visitTimer
->
StartTimer
();
avtDataAttributes
&
atts
=
dob
->
GetInfo
().
GetAttributes
();
...
...
@@ -283,89 +290,116 @@ avtDatabase::PopulateDataObjectInformation(avtDataObject_p &dob,
}
}
const
avtScalarMetaData
*
smd
=
GetMetaData
(
ts
)
->
GetScalar
(
var
);
if
(
smd
!=
NULL
)
//
// We want to add information to the data attributes for each of the
// variables. Make a big list of the primary and secondary variables.
//
vector
<
const
char
*>
var_list
;
var_list
.
push_back
(
var
);
if
(
spec
!=
NULL
)
{
atts
.
SetVariableDimension
(
1
);
atts
.
SetVariableName
(
var
);
atts
.
SetCentering
(
smd
->
centering
);
//
// Note that we are using the spatial extents as both the spatial
// extents and as the global spatial extents (the spatial extents
// across all timesteps).
//
if
(
smd
->
hasDataExtents
)
const
std
::
vector
<
CharStrRef
>
&
secondaryVariables
=
spec
->
GetSecondaryVariables
();
for
(
i
=
0
;
i
<
secondaryVariables
.
size
()
;
i
++
)
{
double
extents
[
2
];
extents
[
0
]
=
smd
->
minDataExtents
;
extents
[
1
]
=
smd
->
maxDataExtents
;
atts
.
GetTrueDataExtents
()
->
Set
(
extents
);
var_list
.
push_back
(
*
(
secondaryVariables
[
i
]));
}
}
const
avtVectorMetaData
*
vmd
=
GetMetaData
(
ts
)
->
GetVector
(
var
);
if
(
vmd
!=
NULL
)
//
// Now iterate through our variable list and add information about each
// variable as we go.
//
for
(
i
=
0
;
i
<
var_list
.
size
()
;
i
++
)
{
atts
.
SetVariableDimension
(
vmd
->
varDim
);
atts
.
SetVariableName
(
var
);
atts
.
SetCentering
(
vmd
->
centering
);
//
// Note that we are using the spatial extents as both the spatial
// extents and as the global spatial extents (the spatial extents
// across all timesteps).
//
if
(
vmd
->
hasDataExtents
)
const
avtScalarMetaData
*
smd
=
GetMetaData
(
ts
)
->
GetScalar
(
var_list
[
i
]);
if
(
smd
!=
NULL
)
{
double
*
extents
=
new
double
[
2
*
vmd
->
varDim
];
for
(
int
i
=
0
;
i
<
vmd
->
varDim
;
i
++
)
atts
.
AddVariable
(
var_list
[
i
]);
atts
.
SetVariableDimension
(
1
,
var_list
[
i
]);
atts
.
SetCentering
(
smd
->
centering
,
var_list
[
i
]);
//
// Note that we are using the spatial extents as both the spatial
// extents and as the global spatial extents (the spatial extents
// across all timesteps).
//
if
(
smd
->
hasDataExtents
)
{
extents
[
2
*
i
]
=
vmd
->
minDataExtents
[
i
];
extents
[
2
*
i
+
1
]
=
vmd
->
maxDataExtents
[
i
];
double
extents
[
2
];
extents
[
0
]
=
smd
->
minDataExtents
;
extents
[
1
]
=
smd
->
maxDataExtents
;
atts
.
GetTrueDataExtents
(
var_list
[
i
])
->
Set
(
extents
);
}
atts
.
GetTrueDataExtents
()
->
Set
(
extents
);
delete
[]
extents
;
}
}
const
avtTensorMetaData
*
tmd
=
GetMetaData
(
ts
)
->
GetTensor
(
var
);
if
(
tmd
!=
NULL
)
{
atts
.
SetVariableDimension
(
9
);
atts
.
SetVariableName
(
var
);
atts
.
SetCentering
(
tmd
->
centering
);
}
const
avtSymmetricTensorMetaData
*
stmd
=
GetMetaData
(
ts
)
->
GetSymmTensor
(
var
);
if
(
stmd
!=
NULL
)
{
atts
.
SetVariableDimension
(
9
);
atts
.
SetVariableName
(
var
);
atts
.
SetCentering
(
stmd
->
centering
);
}
const
avtVectorMetaData
*
vmd
=
GetMetaData
(
ts
)
->
GetVector
(
var_list
[
i
]);
if
(
vmd
!=
NULL
)
{
atts
.
AddVariable
(
var_list
[
i
]);
atts
.
SetVariableDimension
(
vmd
->
varDim
,
var_list
[
i
]);
atts
.
SetCentering
(
vmd
->
centering
,
var_list
[
i
]);
//
// Note that we are using the spatial extents as both the spatial
// extents and as the global spatial extents (the spatial extents
// across all timesteps).
//
if
(
vmd
->
hasDataExtents
)
{
double
*
extents
=
new
double
[
2
*
vmd
->
varDim
];
for
(
j
=
0
;
j
<
vmd
->
varDim
;
j
++
)
{
extents
[
2
*
j
]
=
vmd
->
minDataExtents
[
j
];
extents
[
2
*
j
+
1
]
=
vmd
->
maxDataExtents
[
j
];
}
atts
.
GetTrueDataExtents
(
var_list
[
i
])
->
Set
(
extents
);
delete
[]
extents
;
}
}
const
avtTensorMetaData
*
tmd
=
GetMetaData
(
ts
)
->
GetTensor
(
var_list
[
i
]);
if
(
tmd
!=
NULL
)
{
atts
.
AddVariable
(
var_list
[
i
]);
atts
.
SetVariableDimension
(
9
,
var_list
[
i
]);
atts
.
SetCentering
(
tmd
->
centering
,
var_list
[
i
]);
}
const
avtSymmetricTensorMetaData
*
stmd
=
GetMetaData
(
ts
)
->
GetSymmTensor
(
var_list
[
i
]);
if
(
stmd
!=
NULL
)
{
atts
.
AddVariable
(
var_list
[
i
]);
atts
.
SetVariableDimension
(
9
,
var_list
[
i
]);
atts
.
SetCentering
(
stmd
->
centering
,
var_list
[
i
]);
}
const
avtSpeciesMetaData
*
spmd
=
GetMetaData
(
ts
)
->
GetSpecies
(
var
);
if
(
spmd
!=
NULL
)
{
atts
.
SetVariableDimension
(
1
);
atts
.
SetCentering
(
AVT_ZONECENT
);
atts
.
SetVariableName
(
var
);
double
extents
[
2
];
extents
[
0
]
=
0
.;
extents
[
1
]
=
1
.;
atts
.
GetEffectiveDataExtents
()
->
Set
(
extents
);
}
const
avtSpeciesMetaData
*
spmd
=
GetMetaData
(
ts
)
->
GetSpecies
(
var_list
[
i
]);
if
(
spmd
!=
NULL
)
{
atts
.
AddVariable
(
var_list
[
i
]);
atts
.
SetVariableDimension
(
1
,
var_list
[
i
]);
atts
.
SetCentering
(
AVT_ZONECENT
,
var_list
[
i
]);
double
extents
[
2
];
extents
[
0
]
=
0
.;
extents
[
1
]
=
1
.;
atts
.
GetEffectiveDataExtents
(
var_list
[
i
])
->
Set
(
extents
);
atts
.
GetTrueDataExtents
(
var_list
[
i
])
->
Set
(
extents
);
}
const
avtCurveMetaData
*
cmd
=
GetMetaData
(
ts
)
->
GetCurve
(
var
);
if
(
cmd
!=
NULL
)
{
atts
.
SetTopologicalDimension
(
1
);
atts
.
SetSpatialDimension
(
2
);
const
avtCurveMetaData
*
cmd
=
GetMetaData
(
ts
)
->
GetCurve
(
var_list
[
i
]);
if
(
cmd
!=
NULL
)
{
atts
.
SetTopologicalDimension
(
1
);
atts
.
SetSpatialDimension
(
2
);
}
}
atts
.
SetActiveVariable
(
var
);
//
// SPECIAL CASE:
...
...
components/Expressions/Abstract/avtExpressionFilter.C
View file @
1f51a326
...
...
@@ -200,6 +200,9 @@ avtExpressionFilter::PostExecute(void)
// Fix some odd centering cases that can come up when a variable can get
// misidentified.
//
// Hank Childs, Wed Feb 25 14:48:31 PST 2004
// Make sure that the extents get associated with the correct variable.
//
// ****************************************************************************
vtkDataSet
*
...
...
@@ -314,7 +317,7 @@ avtExpressionFilter::ExecuteData(vtkDataSet *in_ds, int index,
}
}
GetOutput
()
->
GetInfo
().
GetAttributes
().
GetCumulativeTrueDataExtents
()
->
Merge
(
exts
);
GetCumulativeTrueDataExtents
(
outputVariableName
)
->
Merge
(
exts
);
}
//
...
...
@@ -343,13 +346,17 @@ avtExpressionFilter::ExecuteData(vtkDataSet *in_ds, int index,
// Modified to set the centering of the variable to cell or point
// based on IsPointVariable().
//
// Hank Childs, Fri Feb 20 15:08:58 PST 2004
// Account for data attributes using multiple variables.
//
// ****************************************************************************
void
avtExpressionFilter
::
RefashionDataObjectInfo
(
void
)
{
avtDataAttributes
&
outAtts
=
GetOutput
()
->
GetInfo
().
GetAttributes
();
outAtts
.
SetVariableName
(
outputVariableName
);
outAtts
.
AddVariable
(
outputVariableName
);
outAtts
.
SetActiveVariable
(
outputVariableName
);
outAtts
.
SetVariableDimension
(
GetVariableDimension
());
outAtts
.
SetCentering
(
IsPointVariable
()
?
AVT_NODECENT
:
AVT_ZONECENT
);
}
...
...
@@ -397,13 +404,24 @@ avtExpressionFilter::PerformRestriction(avtPipelineSpecification_p spec)
// Programmer: Akira Haddox
// Creation: August 19, 2002
//
// Modifications:
//
// Hank Childs, Wed Feb 25 14:43:17 PST 2004
// Modify logic slightly since, with multiple variable changes, there
// may not be any variables to ask for their centering.
//
// ****************************************************************************
bool
avtExpressionFilter
::
IsPointVariable
()
{
return
(
GetInput
()
->
GetInfo
().
GetAttributes
().
GetCentering
()
==
AVT_NODECENT
);
avtDataAttributes
&
atts
=
GetInput
()
->
GetInfo
().
GetAttributes
();
if
(
atts
.
ValidActiveVariable
())
{
return
(
atts
.
GetCentering
()
!=
AVT_ZONECENT
);
}
return
true
;
}
...
...
components/Expressions/Abstract/avtMultipleInputExpressionFilter.C
View file @
1f51a326
...
...
@@ -70,23 +70,22 @@ avtMultipleInputExpressionFilter::AddInputVariableName(const char *var)
// Programmer: Hank Childs
// Creation: August 15, 2003
//
// Modifications:
//
// Hank Childs, Wed Feb 25 14:44:19 PST 2004
// Updated to account for multiple variables in data attributes.
//
// ****************************************************************************
bool
avtMultipleInputExpressionFilter
::
IsPointVariable
(
void
)
{
if
(
varnames
.
size
()
==
0
)
return
avtExpressionFilter
::
IsPointVariable
();
avtDataset_p
input
=
GetTypedInput
();
avtCentering
cent
=
avtDatasetExaminer
::
GetVariableCentering
(
input
,
varnames
[
0
]);
if
(
cent
!=
AVT_UNKNOWN_CENT
)
avtDataAttributes
&
atts
=
GetInput
()
->
GetInfo
().
GetAttributes
();
if
(
atts
.
ValidVariable
(
varnames
[
0
]))
{
return
(
cent
=
=
AVT_
NOD
ECENT
);
return
(
atts
.
GetCentering
(
varnames
[
0
])
!
=
AVT_
ZON
ECENT
);
}
return
avtExpressionFilter
::
IsPointVariable
();
}
...
...
components/Expressions/General/avtMeshCoordinateFilter.h
View file @
1f51a326
...
...
@@ -28,6 +28,9 @@
// Moved inlined constructor and destructor definitions to .C files
// because certain compilers have problems with them.
//
// Hank Childs, Wed Feb 25 11:41:35 PST 2004
// Corrected the variable dimension of the output.
//
// ****************************************************************************
class
EXPRESSION_API
avtMeshCoordinateFilter
...
...
@@ -45,7 +48,7 @@ class EXPRESSION_API avtMeshCoordinateFilter
protected:
virtual
vtkDataArray
*
DeriveVariable
(
vtkDataSet
*
);
virtual
int
GetVariableDimension
()
{
return
1
;
}
virtual
int
GetVariableDimension
()
{
return
3
;
}
virtual
bool
IsPointVariable
()
{
return
true
;
}
};
...
...
components/Expressions/General/avtVectorComposeFilter.C
View file @
1f51a326
...
...
@@ -60,12 +60,24 @@ avtVectorComposeFilter::~avtVectorComposeFilter()
// Programmer: Hank Childs
// Creation: September 23, 2003
//
// Modifications:
//
// Hank Childs, Thu Feb 26 09:00:06 PST 2004
// Account for multiple variables.
//
// ****************************************************************************
int
avtVectorComposeFilter
::
GetVariableDimension
(
void
)
{
int
inDim
=
GetInput
()
->
GetInfo
().
GetAttributes
().
GetVariableDimension
();
avtDataAttributes
&
atts
=
GetInput
()
->
GetInfo
().
GetAttributes
();
if
(
activeVariable
==
NULL
)
return
3
;
if
(
!
atts
.
ValidVariable
(
activeVariable
))
return
3
;
int
inDim
=
atts
.
GetVariableDimension
();
if
(
inDim
==
1
)
return
3
;
else
if
(
inDim
==
3
)
...
...
components/Expressions/General/avtVectorDecomposeFilter.C
View file @
1f51a326
...
...
@@ -59,12 +59,24 @@ avtVectorDecomposeFilter::~avtVectorDecomposeFilter()
// Programmer: Hank Childs
// Creation: September 23, 2003
//
// Modifications:
//
// Hank Childs, Thu Feb 26 09:00:06 PST 2004
// Account for multiple variables.
//
// ****************************************************************************
int
avtVectorDecomposeFilter
::
GetVariableDimension
(
void
)
{
int
inDim
=
GetInput
()
->
GetInfo
().
GetAttributes
().
GetVariableDimension
();
avtDataAttributes
&
atts
=
GetInput
()
->
GetInfo
().
GetAttributes
();
if
(
activeVariable
==
NULL
)
return
1
;
if
(
!
atts
.
ValidVariable
(
activeVariable
))
return
1
;
int
inDim
=
atts
.
GetVariableDimension
();
if
(
inDim
==
9
)
return
3
;
else
if
(
inDim
==
3
)
...
...
components/Expressions/MeshQuality/avtNeighborFilter.C
View file @
1f51a326
...
...
@@ -172,18 +172,20 @@ avtNeighborFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
// Programmer: Akira Haddox
// Creation: June 27, 2002
//
// Modifications:
//
// Hank Childs, Fri Feb 20 15:51:54 PST 2004
// Have base class do more of the work in setting up output.
//
// ****************************************************************************
void
avtNeighborFilter
::
RefashionDataObjectInfo
(
void
)
{
// It's a scalar node variable
avtDataAttributes
&
outAtts
=
GetOutput
()
->
GetInfo
().
GetAttributes
();
outAtts
.
SetVariableName
(
variableName
);
outAtts
.
SetVariableDimension
(
1
);
outAtts
.
SetCentering
(
AVT_NODECENT
);
avtSingleInputExpressionFilter
::
RefashionDataObjectInfo
();
// And we're now dealing with vertexes
avtDataAttributes
&
outAtts
=
GetOutput
()
->
GetInfo
().
GetAttributes
();
outAtts
.
SetTopologicalDimension
(
0
);
GetOutput
()
->
GetInfo
().
GetValidity
().
InvalidateZones
();
}
components/Expressions/MeshQuality/avtNeighborFilter.h
View file @
1f51a326
...
...
@@ -4,11 +4,14 @@
#ifndef AVT_NEIGHBOR_FILTER_H
#define AVT_NEIGHBOR_FILTER_H
#include <expression_exports.h>
#include <avtSingleInputExpressionFilter.h>
class
vtkDataArray
;
// ****************************************************************************
// Class: avtNeighborFilter
//
...
...
@@ -20,6 +23,11 @@ class vtkDataArray;
// Programmer: Akira Haddox
// Creation: June 27, 2002
//
// Modifications:
//
// Hank Childs, Fri Feb 20 15:51:54 PST 2004
// Re-define GetVariableDimension.
//
// ****************************************************************************
class
EXPRESSION_API
avtNeighborFilter
:
public
avtSingleInputExpressionFilter
...
...
@@ -44,6 +52,7 @@ class EXPRESSION_API avtNeighborFilter : public avtSingleInputExpressionFilter
virtual
void
RefashionDataObjectInfo
(
void
);
virtual
bool
IsPointVariable
()
{
return
true
;
};
virtual
int
GetVariableDimension
()
{
return
1
;
};
};
#endif
components/Filters/avtContourFilter.C
View file @
1f51a326
...
...
@@ -164,6 +164,9 @@ avtContourFilter::~avtContourFilter()
// Hank Childs, Wed Jul 30 09:04:28 PDT 2003
// Do not claim we need face connectivity if we are in 2D.
//
// Hank Childs, Mon Mar 1 07:56:53 PST 2004
// Give a better hint about what variable we are working on.
//
// ****************************************************************************
avtPipelineSpecification_p
...
...
@@ -187,9 +190,10 @@ avtContourFilter::PerformRestriction(avtPipelineSpecification_p in_spec)
double
extents
[
6
];
// 6 is just in case.
const
char
*
varname
=
NULL
;
if
(
atts
.
GetVariable
()
!=
"default"
)
{
varname
=
atts
.
GetVariable
().
c_str
();
}
else
varname
=
activeVariable
;
if
(
TryDataExtents
(
extents
,
varname
))
{
SetIsoValues
(
extents
[
0
],
extents
[
1
]);
...
...
@@ -572,6 +576,9 @@ avtContourFilter::ExecuteDataTree(vtkDataSet *in_ds, int domain, string label)
// Hank Childs, Thu Oct 10 13:05:49 PDT 2002
// Do not assume that output is node-centered.
//
// Hank Childs, Thu Feb 26 09:05:34 PST 2004
// Do a better job of handling multiple variables.
//
// ****************************************************************************
void
...
...
@@ -581,10 +588,25 @@ avtContourFilter::RefashionDataObjectInfo(void)
avtDataAttributes
&
inAtts
=
GetInput
()
->
GetInfo
().
GetAttributes
();
outAtts
.
SetTopologicalDimension
(
inAtts
.
GetTopologicalDimension
()
-
1
);
const
char
*
var_to_modify
=
NULL
;
if
(
atts
.
GetVariable
()
==
"default"
)
{
outAtts
.
SetCentering
(
AVT_NODECENT
);
if
(
inAtts
.
ValidActiveVariable
())
{
var_to_modify
=
inAtts
.
GetVariableName
().
c_str
();
}
}
else
{
var_to_modify
=
atts
.
GetVariable
().
c_str
();
}
if
(
var_to_modify
!=
NULL
)
{
if
(
outAtts
.
ValidVariable
(
var_to_modify
))
outAtts
.
SetCentering
(
AVT_NODECENT
,
var_to_modify
);
}
GetOutput
()
->
GetInfo
().
GetValidity
().
InvalidateZones
();
}
...
...