Commit e59bf254 authored by brugger's avatar brugger

I converted more filters to use avtDataRepresentation instead
of vtkDataSets.



git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@23835 18c085ea-50e0-402c-830e-de6fd14e8384
parent 9c18a96d
......@@ -335,24 +335,32 @@ avtAMRStitchCellFilter::PreExecute(void)
// Create dual grid and stitch cell data sets and add them to a data tree
//
// Arguments:
// in_ds The input dataset.
// domain The domain number.
// <unused> The label.
// in_dr The input data representation.
//
// Returns: The output dataset.
// Returns: The output data representation.
//
// Programmer: Gunther H. Weber
// Creation: Thu Jul 8 15:14:01 PST 2010
//
// Modifications:
// Eric Brugger, Tue Jul 22 17:02:41 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
avtDataTree_p
avtAMRStitchCellFilter::ExecuteDataTree(vtkDataSet *in_ds, int domain,
std::string str)
avtAMRStitchCellFilter::ExecuteDataTree(avtDataRepresentation *in_dr)
{
//
// Get the VTK data set, the domain number and the label.
//
vtkDataSet *in_ds = in_dr->GetDataVTK();
int domain = in_dr->GetDomain();
std::string label = in_dr->GetLabel();
// Diagnostic output
debug5 << "avtAMRStitchCellFilter::ExecuteDataTree(): Processing domain ";
debug5 << domain << " (" << str << ")" << std::endl;
debug5 << domain << " (" << label << ")" << std::endl;
// Obtain level
const int level = domainNesting->GetDomainLevel(domain);
......@@ -369,7 +377,7 @@ avtAMRStitchCellFilter::ExecuteDataTree(vtkDataSet *in_ds, int domain,
// Return an empty data set for levels or patches that are disabled for
// debugging.
vtkDataSet *ods[2] = { 0, 0 };
return new avtDataTree(2, ods, domain, str);
return new avtDataTree(2, ods, domain, label);
}
// Ensure that we are working on rectilinear grid
......@@ -875,7 +883,7 @@ avtAMRStitchCellFilter::ExecuteDataTree(vtkDataSet *in_ds, int domain,
delete[] refinedInSameLevelDomain;
// Create data tree
avtDataTree_p rv = new avtDataTree(2, out_ds, domain, str);
avtDataTree_p rv = new avtDataTree(2, out_ds, domain, label);
// Clean-up intermediate results
for (int dsNo=0; dsNo<2; ++dsNo)
......
......@@ -43,8 +43,8 @@
#ifndef AVT_AMRStitchCell_FILTER_H
#define AVT_AMRStitchCell_FILTER_H
#include <avtPluginDataTreeIterator.h>
#include <AMRStitchCellAttributes.h>
#include <vtkType.h>
......@@ -56,6 +56,7 @@ class vtkDataSet;
class vtkRectilinearGrid;
class avtStructuredDomainNesting;
// ****************************************************************************
// Class: avtAMRStitchCellFilter
//
......@@ -65,6 +66,10 @@ class avtStructuredDomainNesting;
// Programmer: ghweber -- generated by xml2avt
// Creation: Thu Jul 8 15:14:01 PST 2010
//
// Modifications:
// Eric Brugger, Tue Jul 22 17:01:30 PDT 2014
// Modified the class to work with avtDataRepresentation
//
// ****************************************************************************
class avtAMRStitchCellFilter : public virtual avtSIMODataTreeIterator,
......@@ -89,7 +94,7 @@ class avtAMRStitchCellFilter : public virtual avtSIMODataTreeIterator,
virtual void PreExecute(void);
virtual avtContract_p ModifyContract(avtContract_p);
virtual avtDataTree_p ExecuteDataTree(vtkDataSet *, int, std::string);
virtual avtDataTree_p ExecuteDataTree(avtDataRepresentation *);
virtual void UpdateDataObjectInfo(void);
vtkDataSet *CreateStitchCells(vtkRectilinearGrid*, int, int, int[3],
int[3], int[3], int[3], const std::vector<int>&,
......
......@@ -611,11 +611,9 @@ avtBoxFilter::Equivalent(const AttributeGroup *a)
// Sends the specified input and output through the Box filter.
//
// Arguments:
// in_ds The input dataset.
// <unused> The domain number.
// <unused> The label.
// in_dr The input data representation.
//
// Returns: The output dataset.
// Returns: The output data representation.
//
// Programmer: childs -- generated by xml2info
// Creation: Mon Nov 12 16:57:31 PST 2001
......@@ -633,11 +631,19 @@ avtBoxFilter::Equivalent(const AttributeGroup *a)
// Dave Pugmire, Fri Aug 30 15:57:33 EDT 2013
// Add an inverse option for box clip.
//
// Eric Brugger, Tue Jul 22 17:07:37 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
vtkDataSet *
avtBoxFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
avtDataRepresentation *
avtBoxFilter::ExecuteData(avtDataRepresentation *in_dr)
{
//
// Get the VTK data set.
//
vtkDataSet *in_ds = in_dr->GetDataVTK();
//
// If the selection this filter exists to create has already been handled,
// then we can skip execution
......@@ -646,7 +652,7 @@ avtBoxFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
{
debug1 << "Bypassing Box operator because database plugin "
"claims to have applied the selection already" << endl;
return in_ds;
return in_dr;
}
vtkDataSet *outDS = NULL;
......@@ -674,12 +680,15 @@ avtBoxFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
{
if (outDS->GetNumberOfCells() <= 0)
rv = NULL;
else
ManageMemory(outDS);
outDS->Delete(); // We have to remove the extra reference.
}
return rv;
avtDataRepresentation *out_dr = new avtDataRepresentation(rv,
in_dr->GetDomain(), in_dr->GetLabel());
if (outDS != NULL)
outDS->Delete();
return out_dr;
}
// ****************************************************************************
......
......@@ -44,11 +44,12 @@
#define AVT_Box_FILTER_H
#include <avtPluginDataTreeIterator.h>
#include <BoxAttributes.h>
class vtkDataSet;
class vtkRectilinearGrid;
class vtkUnstructuredGrid;
class vtkDataSet;
class vtkRectilinearGrid;
class vtkUnstructuredGrid;
// ****************************************************************************
......@@ -72,6 +73,9 @@ class vtkUnstructuredGrid;
// Made this derive again from avtPluginDataTreeIterator instead of
// avtSIMODataTreeIterator.
//
// Eric Brugger, Tue Jul 22 17:07:12 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
class avtBoxFilter : public avtPluginDataTreeIterator
......@@ -93,7 +97,7 @@ class avtBoxFilter : public avtPluginDataTreeIterator
BoxAttributes atts;
int selID;
virtual vtkDataSet *ExecuteData(vtkDataSet *, int, std::string);
virtual avtDataRepresentation *ExecuteData(avtDataRepresentation *);
vtkRectilinearGrid *RectilinearExecute(vtkRectilinearGrid *);
vtkUnstructuredGrid *GeneralExecute(vtkDataSet *);
virtual void UpdateDataObjectInfo(void);
......
......@@ -143,11 +143,9 @@ avtCartographicProjectionFilter::Equivalent(const AttributeGroup *a)
// Sends the specified input and output through the CartographicProjection filter.
//
// Arguments:
// in_ds The input dataset.
// <unused> The domain number.
// <unused> The label.
// in_dr The input data representation.
//
// Returns: The output dataset.
// Returns: The output data representation.
//
// Programmer: jfavre -- generated by xml2avt
// Creation: Fri Aug 31 10:12:22 PDT 2012
......@@ -160,10 +158,13 @@ avtCartographicProjectionFilter::Equivalent(const AttributeGroup *a)
// Added a Central Meridian
// Added support for PolyData (typically, they are shapefiles for continent lines)
//
// Eric Brugger, Wed Jul 23 08:30:25 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
vtkDataSet *
avtCartographicProjectionFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
avtDataRepresentation *
avtCartographicProjectionFilter::ExecuteData(avtDataRepresentation *in_dr)
{
/* The projection mappings in VTK, based on the libproj4 library, expect data with coordinates
* in the range [-180, 180] for longitude, and [-90, 90] for latitude.
......@@ -172,6 +173,11 @@ avtCartographicProjectionFilter::ExecuteData(vtkDataSet *in_ds, int, std::string
* A new grid is created based on the input, coordinates are projected, then remapped to the classic range
* of [-180, 180] for longitude, and [-90, 90] for latitude
*/
//
// Get the VTK data set.
//
vtkDataSet *in_ds = in_dr->GetDataVTK();
int do_type = in_ds->GetDataObjectType();
int dims[3], numPts = in_ds->GetNumberOfPoints();
vtkPointSet *ds;
......@@ -299,7 +305,7 @@ avtCartographicProjectionFilter::ExecuteData(vtkDataSet *in_ds, int, std::string
break;
default:
debug4 << "not supported for this grid type" <<endl;
return in_ds;
return in_dr;
}
ds->SetPoints(newPoints);
......@@ -312,12 +318,16 @@ avtCartographicProjectionFilter::ExecuteData(vtkDataSet *in_ds, int, std::string
if(do_type == VTK_RECTILINEAR_GRID)
inPts->Delete();
ManageMemory(ds);
ds->Delete();
newPoints->Delete();
proj->Delete();
geoXform->Delete();
return ds;
avtDataRepresentation *out_dr = new avtDataRepresentation(ds,
in_dr->GetDomain(), in_dr->GetLabel());
ds->Delete();
return out_dr;
}
// ****************************************************************************
......
......@@ -43,12 +43,9 @@
#ifndef AVT_CartographicProjection_FILTER_H
#define AVT_CartographicProjection_FILTER_H
#include <avtPluginDataTreeIterator.h>
#include <CartographicProjectionAttributes.h>
class vtkDataSet;
#include <CartographicProjectionAttributes.h>
// ****************************************************************************
......@@ -60,6 +57,10 @@ class vtkDataSet;
// Programmer: jfavre -- generated by xml2avt
// Creation: Fri Sep 7 14:25:48 PST 2012
//
// Modifications:
// Eric Brugger, Wed Jul 23 08:30:00 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
class avtCartographicProjectionFilter : public avtPluginDataTreeIterator
......@@ -80,7 +81,7 @@ class avtCartographicProjectionFilter : public avtPluginDataTreeIterator
protected:
CartographicProjectionAttributes atts;
void UpdateDataObjectInfo(void);
virtual vtkDataSet *ExecuteData(vtkDataSet *, int, std::string);
virtual avtDataRepresentation *ExecuteData(avtDataRepresentation *);
};
......
......@@ -857,11 +857,9 @@ avtConeFilter::Equivalent(const AttributeGroup *a)
// Sends the specified input and output through the Cone filter.
//
// Arguments:
// in_ds The input dataset.
// <unused> The domain number.
// <unused> The label.
// in_dr The input data representation.
//
// Returns: The output dataset.
// Returns: The output data representation.
//
// Programmer: childs -- generated by xml2info
// Creation: Wed May 29 16:09:58 PST 2002
......@@ -877,11 +875,19 @@ avtConeFilter::Equivalent(const AttributeGroup *a)
// David Camp, Thu May 23 12:52:53 PDT 2013
// Changed function to be thread safe.
//
// Eric Brugger, Wed Jul 23 08:38:09 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
vtkDataSet *
avtConeFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
avtDataRepresentation *
avtConeFilter::ExecuteData(avtDataRepresentation *in_dr)
{
//
// Get the VTK data set.
//
vtkDataSet *in_ds = in_dr->GetDataVTK();
vtkDataSet *rv = NULL;
vtkPolyDataAlgorithm *outputFilter = NULL;
......@@ -929,14 +935,17 @@ avtConeFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
outputFilter->Update();
rv = outputFilter->GetOutput();
// FIX_ME_VTK6.0, ESB, what does this logic do??
vtkDataSet *ds = (vtkDataSet *) rv->NewInstance();
ds->ShallowCopy(rv);
ManageMemory(ds);
ds->Delete();
DestroyVTKObjects(obj);
return ds;
avtDataRepresentation *out_dr = new avtDataRepresentation(ds,
in_dr->GetDomain(), in_dr->GetLabel());
ds->Delete();
return out_dr;
}
......
......@@ -43,20 +43,18 @@
#ifndef AVT_Cone_FILTER_H
#define AVT_Cone_FILTER_H
#include <avtPluginDataTreeIterator.h>
#include <ConeAttributes.h>
#include <ConeAttributes.h>
class vtkClipPolyData;
class vtkCone;
class vtkVisItCutter;
class vtkDataSet;
class vtkImplicitBoolean;
class vtkPlane;
class vtkTransformPolyDataFilter;
class vtkPolarTransformFilter;
class vtkTransformPolyDataFilter;
class vtkVisItCutter;
// ****************************************************************************
......@@ -81,6 +79,9 @@ class vtkPolarTransformFilter;
// changes to the code for threading. Also added functions to create and
// destroy the VTK objects.
//
// Eric Brugger, Wed Jul 23 08:37:40 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
class avtConeFilter : public avtPluginDataTreeIterator
......@@ -117,7 +118,7 @@ class avtConeFilter : public avtPluginDataTreeIterator
vtkPlane *planeToClipByLength;
} avtConeFilterVTKObjects;
virtual vtkDataSet *ExecuteData(vtkDataSet *, int, std::string);
virtual avtDataRepresentation *ExecuteData(avtDataRepresentation *);
virtual void UpdateDataObjectInfo(void);
void SetUpClipping(avtConeFilterVTKObjects &obj);
void SetUpCone(avtConeFilterVTKObjects &obj);
......
......@@ -172,20 +172,27 @@ avtConnCompReduceFilter::PreExecute(void)
// Sends the specified input and output through the ConnCompReduce filter.
//
// Arguments:
// in_ds The input dataset.
// <unused> The domain number.
// <unused> The label.
// in_dr The input data representation.
//
// Returns: The output dataset.
// Returns: The output data representation.
//
// Programmer: childs -- generated by xml2info
// Creation: Tue Oct 29 10:16:45 PDT 2002
//
// Modifications:
// Eric Brugger, Wed Jul 23 08:42:01 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
vtkDataSet *
avtConnCompReduceFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
avtDataRepresentation *
avtConnCompReduceFilter::ExecuteData(avtDataRepresentation *in_dr)
{
//
// Get the VTK data set.
//
vtkDataSet *in_ds = in_dr->GetDataVTK();
int dstype = in_ds->GetDataObjectType();
vtkDataSet *rv = NULL;
bool ownDS = true;
......@@ -209,13 +216,15 @@ avtConnCompReduceFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
ownDS = false;
}
ManageMemory(rv);
avtDataRepresentation *out_dr = new avtDataRepresentation(rv,
in_dr->GetDomain(), in_dr->GetLabel());
if (ownDS)
{
rv->Delete();
}
return rv;
return out_dr;
}
......
......@@ -43,8 +43,8 @@
#ifndef AVT_ConnCompReduce_FILTER_H
#define AVT_ConnCompReduce_FILTER_H
#include <avtPluginDataTreeIterator.h>
#include <ConnCompReduceAttributes.h>
class vtkDataSet;
......@@ -61,6 +61,10 @@ class vtkUnstructuredGrid;
// Programmer: childs -- generated by xml2info
// Creation: Tue Oct 29 10:16:45 PDT 2002
//
// Modifications:
// Eric Brugger, Wed Jul 23 08:41:39 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
class avtConnCompReduceFilter : public avtPluginDataTreeIterator
......@@ -79,10 +83,10 @@ class avtConnCompReduceFilter : public avtPluginDataTreeIterator
virtual bool Equivalent(const AttributeGroup*);
protected:
ConnCompReduceAttributes atts;
bool haveIssuedWarning;
ConnCompReduceAttributes atts;
bool haveIssuedWarning;
virtual vtkDataSet *ExecuteData(vtkDataSet *, int, std::string);
virtual avtDataRepresentation *ExecuteData(avtDataRepresentation *);
virtual void PreExecute(void);
vtkDataSet *PolyDataExecute(vtkPolyData *);
......
......@@ -140,11 +140,9 @@ avtContextFilter::Equivalent(const AttributeGroup *a)
// Sends the specified input and output through the Context filter.
//
// Arguments:
// in_ds The input dataset.
// <unused> The domain number.
// <unused> The label.
// in_dr The input data representation.
//
// Returns: The output dataset.
// Returns: The output data representation.
//
// Programmer: childs -- generated by xml2info
// Creation: Fri Dec 21 14:23:41 PST 2001
......@@ -160,11 +158,19 @@ avtContextFilter::Equivalent(const AttributeGroup *a)
// Kathleen Biagas, Fri Sep 7 12:36:42 MST 2012
// Preserve variable data type.
//
// Eric Brugger, Wed Jul 23 08:46:04 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
vtkDataSet *
avtContextFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
avtDataRepresentation *
avtContextFilter::ExecuteData(avtDataRepresentation *in_dr)
{
//
// Get the VTK data set.
//
vtkDataSet *in_ds = in_dr->GetDataVTK();
bool pointvar = false;
vtkDataArray *primaryVar = in_ds->GetPointData()->GetScalars();
if (primaryVar == NULL)
......@@ -251,7 +257,12 @@ avtContextFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
outVar->Delete();
return out_ds;
avtDataRepresentation *out_dr = new avtDataRepresentation(out_ds,
in_dr->GetDomain(), in_dr->GetLabel());
out_ds->Delete();
return out_dr;
}
......
......@@ -43,12 +43,9 @@
#ifndef AVT_Context_FILTER_H
#define AVT_Context_FILTER_H
#include <avtPluginDataTreeIterator.h>
#include <ContextAttributes.h>
class vtkDataSet;
#include <ContextAttributes.h>
// ****************************************************************************
......@@ -60,6 +57,10 @@ class vtkDataSet;
// Programmer: childs -- generated by xml2info
// Creation: Fri Dec 21 14:23:41 PST 2001
//
// Modifications:
// Eric Brugger, Wed Jul 23 08:45:43 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
class avtContextFilter : public avtPluginDataTreeIterator
......@@ -78,9 +79,9 @@ class avtContextFilter : public avtPluginDataTreeIterator
virtual bool Equivalent(const AttributeGroup*);
protected:
ContextAttributes atts;
ContextAttributes atts;
virtual vtkDataSet *ExecuteData(vtkDataSet *, int, std::string);
virtual avtDataRepresentation *ExecuteData(avtDataRepresentation *);
virtual avtContract_p
ModifyContract(avtContract_p);
virtual void UpdateDataObjectInfo(void);
......
......@@ -141,11 +141,9 @@ avtCoordSwapFilter::Equivalent(const AttributeGroup *a)
// Sends the specified input and output through the CoordSwap filter.
//
// Arguments:
// in_ds The input dataset.
// <unused> The domain number.
// <unused> The label.
// in_dr The input data representation.
//
// Returns: The output dataset.
// Returns: The output data representatoin.
//
// Programmer: childs -- generated by xml2avt
// Creation: Wed Feb 2 15:47:40 PST 2005
......@@ -154,11 +152,19 @@ avtCoordSwapFilter::Equivalent(const AttributeGroup *a)
// Kathleen Biagas, Tue Aug 21 16:06:23 MST 2012
// Preserve coordinate type.
//
// Eric Brugger, Wed Jul 23 11:09:55 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
vtkDataSet *
avtCoordSwapFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
avtDataRepresentation *
avtCoordSwapFilter::ExecuteData(avtDataRepresentation *in_dr)
{
//
// Get the VTK data set.
//
vtkDataSet *in_ds = in_dr->GetDataVTK();
int i, j, k;
int old_index[3] = { 0, 0, 0 };
......@@ -280,11 +286,13 @@ avtCoordSwapFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
rv = out_ps;
}
ManageMemory(rv);
avtDataRepresentation *out_dr = new avtDataRepresentation(rv,
in_dr->GetDomain(), in_dr->GetLabel());
if (rv != NULL)
rv->Delete();
return rv;
return out_dr;
}
......
......@@ -43,12 +43,9 @@
#ifndef AVT_CoordSwap_FILTER_H
#define AVT_CoordSwap_FILTER_H
#include <avtPluginDataTreeIterator.h>
#include <CoordSwapAttributes.h>
class vtkDataSet;
#include <CoordSwapAttributes.h>
// ****************************************************************************
......@@ -60,6 +57,10 @@ class vtkDataSet;
// Programmer: childs -- generated by xml2avt
// Creation: Wed Feb 2 16:09:10 PST 2005
//
// Modifications:
// Eric Brugger, Wed Jul 23 11:09:30 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
class avtCoordSwapFilter : public avtPluginDataTreeIterator
......@@ -82,7 +83,7 @@ class avtCoordSwapFilter : public avtPluginDataTreeIterator
protected:
CoordSwapAttributes atts;
virtual vtkDataSet *ExecuteData(vtkDataSet *, int, std::string);
virtual avtDataRepresentation *ExecuteData(avtDataRepresentation *);
void UpdateDataObjectInfo(void);
};
......
......@@ -142,11 +142,9 @@ avtCracksDensityFilter::Equivalent(const AttributeGroup *a)
// Sends the specified input and output through the CracksDensity filter.
//
// Arguments:
// in_ds The input dataset.
// <unused> The domain number.
// <unused> The label.
// in_dr The input data representation.
//
// Returns: The output dataset.
// Returns: The output data representation.
//
// Programmer: kbonnell -- generated by xml2avt
// Creation: Mon Apr 30 11:40:50 PDT 2007
......@@ -159,6 +157,9 @@ avtCracksDensityFilter::Equivalent(const AttributeGroup *a)
// Support double precision data. Re-add density var to pipeline so that
// data range can be properly set. Use pipeline var (varname).
//
// Eric Brugger, Wed Jul 23 11:13:42 PDT 2014
// Modified the class to work with avtDataRepresentation.
//
// ****************************************************************************
template <typename T1, typename T2> void
......@@ -194,14 +195,19 @@ avtCracksDensityFilter_CalculateDensity(int numOriginalCells, int numNewCells,
delete [] volSum;
}
vtkDataSet *
avtCracksDensityFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
avtDataRepresentation *
avtCracksDensityFilter::ExecuteData(avtDataRepresentation *in_dr)
{
//
// Get the VTK data set.
//
vtkDataSet *in_ds = in_dr->GetDataVTK();
if (varname.empty())
{
avtCallback::IssueWarning("Could not find necessary var name,"
" in which to store density calculation.");
return in_ds;
return in_dr;
}
vtkDataArray *vol = in_ds->GetCellData()->GetArray("ccvol");
if (vol == NULL)
......@@ -209,7 +215,7 @@ avtCracksDensityFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
avtCallback::IssueWarning("Could not find necessary volume data,"
" cannot calculate density. This filter must be used in"
" conjunction with avtCracksClipper");
return in_ds;
return in_dr;
}
vtkIntArray *coz = vtkIntArray::SafeDownCast(
......@@ -219,7 +225,7 @@ avtCracksDensityFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
avtCallback::IssueWarning("Could not find necessary original zones"
" data, cannot calculate density. This filter must be used in"
" conjunction with avtCracksClipper");
return in_ds;
return in_dr;
}
std::string massVar = atts.GetInMassVar();
......@@ -229,7 +235,7 @@ avtCracksDensityFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
std::string msg = "Could not find mass varaible: " + massVar;
msg += ". Cannot calculate density.";
avtCallback::IssueWarning(msg.c_str());
return in_ds;
return in_dr;
}
vtkIntArray *noc = vtkIntArray::SafeDownCast(
......@@ -239,7 +245,7 @@ avtCracksDensityFilter::ExecuteData(vtkDataSet *in_ds, int, std::string)
avtCallback::IssueWarning("Could not find necessary number of zones"
" data, cannot calculate density. This filter must be used in"
" conjunction with avtCracksClipper");