Commit 8e882e86 authored by hrchilds's avatar hrchilds

Merge 1.12RC into trunk, picking up named selections infrastructure


git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@6213 18c085ea-50e0-402c-830e-de6fd14e8384
parent 3ba090b8
......@@ -102,6 +102,9 @@
# Hank Childs, Tue Dec 2 13:41:08 PST 2008
# Add the avtStreamlinePolyDataFilter.
#
# Hank Childs, Mon Feb 2 16:42:03 PST 2009
# Added avtNamedSelectionFilter.
#
# Dave Pugmire, Tue Feb 3 10:56:45 EST 2009
# Add the streamline algorithm code.
#
......@@ -137,6 +140,7 @@ SRC=\
avtLineoutFilter.C \
avtMassVoxelExtractor.C \
avtMeshLogFilter.C \
avtNamedSelectionFilter.C \
avtPointToGlyphFilter.C \
avtRayCompositer.C \
avtRayTracer.C \
......
/*****************************************************************************
*
* Copyright (c) 2000 - 2008, Lawrence Livermore National Security, LLC
* Produced at the Lawrence Livermore National Laboratory
* LLNL-CODE-400142
* All rights reserved.
*
* This file is part of VisIt. For details, see https://visit.llnl.gov/. The
* full copyright notice is contained in the file COPYRIGHT located at the root
* of the VisIt distribution or at http://www.llnl.gov/visit/copyright.html.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the disclaimer below.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the disclaimer (as noted below) in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of the LLNS/LLNL nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY,
* LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
*****************************************************************************/
// ************************************************************************* //
// File: avtNamedSelectionFilter.C
// ************************************************************************* //
#include <avtNamedSelectionFilter.h>
#include <vtkCellData.h>
#include <vtkDataSet.h>
#include <vtkFloatArray.h>
#include <vtkThreshold.h>
#include <vtkUnstructuredGrid.h>
#include <avtNamedSelection.h>
#include <avtNamedSelectionManager.h>
#include <avtSILRestriction.h>
// ****************************************************************************
// Method: avtNamedSelectionFilter constructor
//
// Programmer: Hank Childs
// Creation: February 2, 2009
//
// ****************************************************************************
avtNamedSelectionFilter::avtNamedSelectionFilter()
{
}
// ****************************************************************************
// Method: avtNamedSelectionFilter destructor
//
// Programmer: Hank Childs
// Creation: February 2, 2009
//
// ****************************************************************************
avtNamedSelectionFilter::~avtNamedSelectionFilter()
{
}
// ****************************************************************************
// Method: avtNamedSelectionFilter::ExecuteData
//
// Purpose:
// Sends the specified input and output through the NamedSelection filter.
//
// Arguments:
// in_ds The input dataset.
// <unused> The domain number.
// <unused> The label.
//
// Returns: The output dataset.
//
// Programmer: Hank Childs
// Creation: February 2, 2009
//
// ****************************************************************************
vtkDataSet *
avtNamedSelectionFilter::ExecuteData(vtkDataSet *in_ds, int dom, std::string)
{
int i;
vtkDataArray *ocn=in_ds->GetCellData()->GetArray("avtOriginalCellNumbers");
if (ocn == NULL)
{
EXCEPTION0(ImproperUseException);
}
unsigned int *ptr = (unsigned int *) ocn->GetVoidPointer(0);
if (ptr == NULL)
{
EXCEPTION0(ImproperUseException);
}
avtNamedSelectionManager *nsm = avtNamedSelectionManager::GetInstance();
avtNamedSelection *ns = nsm->GetNamedSelection(selName);
if (ns == NULL || ns->GetType() != avtNamedSelection::ZONE_ID)
{
EXCEPTION0(ImproperUseException);
}
avtZoneIdNamedSelection *zins = (avtZoneIdNamedSelection *) ns;
vector<int> ids;
int ncells = in_ds->GetNumberOfCells();
zins->GetMatchingIds(ptr, ncells, ids);
if (ids.size() == 0)
return NULL;
vtkDataSet *ds = in_ds->NewInstance();
ds->ShallowCopy(in_ds);
vtkFloatArray *arr = vtkFloatArray::New();
arr->SetNumberOfTuples(ncells);
arr->SetName("_avt_thresh_var");
for (i = 0 ; i < ncells ; i++)
arr->SetValue(i, 0.);
for (i = 0 ; i < ids.size() ; i++)
arr->SetValue(ids[i], 1.);
ds->GetCellData()->AddArray(arr);
arr->Delete();
vtkThreshold *thres = vtkThreshold::New();
thres->SetInput(ds);
thres->ThresholdBetween(0.5, 1.5);
thres->SetInputArrayToProcess(0, 0, 0,
vtkDataObject::FIELD_ASSOCIATION_CELLS, "_avt_thresh_var");
vtkUnstructuredGrid *rv = thres->GetOutput();
rv->Update();
ManageMemory(rv);
thres->Delete();
return rv;
}
// ****************************************************************************
// Method: avtNamedSelectionFilter::ModifyContract
//
// Purpose:
// Turn on Zone numbers flag if needed, so that original cell array
// will be propagated throught the pipeline.
//
// Programmer: Hank Childs
// Creation: February 2, 2009
//
// ****************************************************************************
avtContract_p
avtNamedSelectionFilter::ModifyContract(avtContract_p contract)
{
avtContract_p rv = new avtContract(contract);
rv->GetDataRequest()->TurnZoneNumbersOn();
avtNamedSelectionManager *nsm = avtNamedSelectionManager::GetInstance();
avtNamedSelection *ns = nsm->GetNamedSelection(selName);
if (ns == NULL)
{
EXCEPTION1(VisItException, "The named selection was not valid");
}
vector<int> domains;
bool useList = ns->GetDomainList(domains);
if (useList)
{
rv->GetDataRequest()->GetRestriction()->RestrictDomains(domains);
}
return rv;
}
/*****************************************************************************
*
* Copyright (c) 2000 - 2008, Lawrence Livermore National Security, LLC
* Produced at the Lawrence Livermore National Laboratory
* LLNL-CODE-400142
* All rights reserved.
*
* This file is part of VisIt. For details, see https://visit.llnl.gov/. The
* full copyright notice is contained in the file COPYRIGHT located at the root
* of the VisIt distribution or at http://www.llnl.gov/visit/copyright.html.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the disclaimer below.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the disclaimer (as noted below) in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of the LLNS/LLNL nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY,
* LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
*****************************************************************************/
// ************************************************************************* //
// File: avtNamedSelectionFilter.h
// ************************************************************************* //
#ifndef AVT_NamedSelection_FILTER_H
#define AVT_NamedSelection_FILTER_H
#include <filters_exports.h>
#include <avtDataTreeIterator.h>
class vtkDataSet;
// ****************************************************************************
// Class: avtNamedSelectionFilter
//
// Purpose:
// A filter that removes all identifiers that aren't part of the named
// selection.
//
// Programmer: Hank Childs
// Creation: February 2, 2009
//
// ****************************************************************************
class AVTFILTERS_API avtNamedSelectionFilter : public avtDataTreeIterator
{
public:
avtNamedSelectionFilter();
virtual ~avtNamedSelectionFilter();
virtual const char *GetType(void) { return "avtNamedSelectionFilter"; };
virtual const char *GetDescription(void)
{ return "Applying named selection"; };
void SetSelectionName(const std::string &s)
{ selName = s; };
protected:
std::string selName;
virtual vtkDataSet *ExecuteData(vtkDataSet *, int, std::string);
virtual avtContract_p ModifyContract(avtContract_p);
};
#endif
......@@ -101,15 +101,22 @@ avtDataObject::~avtDataObject()
// Propagates an Update up the pipeline.
//
// Arguments:
// spec The specification of what data the pipeline should execute.
// contract The contract of what data the pipeline should execute.
//
// Programmer: Hank Childs
// Creation: May 23, 2001
//
// Modifications:
//
// Hank Childs, Mon Feb 2 09:26:36 PST 2009
// Store off the contract if this is not a transient data object.
// (Chose to do this only for non-transients, because those are probably
// the only ones we'd want it for ... simply trying to save on space.)
//
// ****************************************************************************
bool
avtDataObject::Update(avtContract_p spec)
avtDataObject::Update(avtContract_p contract)
{
bool rv = false;
if (source == NULL)
......@@ -121,9 +128,11 @@ avtDataObject::Update(avtContract_p spec)
}
else
{
rv = source->Update(spec);
rv = source->Update(contract);
}
contractFromPrevExecution = contract;
return rv;
}
......
......@@ -87,6 +87,9 @@ class avtWebpage;
// Define private copy constructor and assignment operator to prevent
// accidental use of default, bitwise copy implementations.
//
// Hank Childs, Mon Feb 2 09:26:16 PST 2009
// Added data member for the contract from a previous execution.
//
// ****************************************************************************
class PIPELINE_API avtDataObject
......@@ -120,6 +123,8 @@ class PIPELINE_API avtDataObject
void SetTransientStatus(bool b)
{ transient = b; };
bool IsTransient(void) { return transient; };
avtContract_p GetContractFromPreviousExecution(void)
{ return contractFromPrevExecution; };
virtual void DebugDump(avtWebpage *, const char *);
......@@ -134,6 +139,8 @@ class PIPELINE_API avtDataObject
// because we need it for queries.
bool transient;
avtContract_p contractFromPrevExecution;
virtual void DerivedCopy(avtDataObject *);
virtual void DerivedMerge(avtDataObject *);
void CompatibleTypes(avtDataObject *);
......
......@@ -123,6 +123,9 @@ class avtWebpage;
// Hank Childs, Mon Jun 16 12:25:31 PDT 2008
// Add method CalculateSpatialIntervalTree.
//
// Hank Childs, Tue Feb 3 11:26:05 PST 2009
// Add friend status for avtNamedSelectionManager.
//
// ****************************************************************************
class PIPELINE_API avtDataset : public avtDataObject
......@@ -137,6 +140,7 @@ class PIPELINE_API avtDataset : public avtDataObject
friend class avtLineScanQuery;
friend class avtLineSurfaceFilter;
friend class avtExecuteThenTimeLoopFilter;
friend class avtNamedSelectionManager;
public:
avtDataset(avtDataObjectSource *);
......
......@@ -255,6 +255,9 @@
# Hank Childs and Jeremy Meredith, Tue Jan 27 11:00:31 PST 2009
# Added avtHistogramSpecification and avtIdentifierSelection.
#
# Hank Childs, Mon Feb 2 08:24:47 PST 2009
# Added named selections.
#
##############################################################################
@SET_MAKE@
......@@ -340,6 +343,8 @@ Pipeline_src= \
Pipeline/avtImageReader.C \
Pipeline/avtImageTiler.C \
Pipeline/avtImageWriter.C \
Pipeline/avtNamedSelection.C \
Pipeline/avtNamedSelectionManager.C \
Pipeline/avtNullDataReader.C \
Pipeline/avtNullDataWriter.C \
Pipeline/avtParallel.C \
......
This diff is collapsed.
/*****************************************************************************
*
* Copyright (c) 2000 - 2008, Lawrence Livermore National Security, LLC
* Produced at the Lawrence Livermore National Laboratory
* LLNL-CODE-400142
* All rights reserved.
*
* This file is part of VisIt. For details, see https://visit.llnl.gov/. The
* full copyright notice is contained in the file COPYRIGHT located at the root
* of the VisIt distribution or at http://www.llnl.gov/visit/copyright.html.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the disclaimer below.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the disclaimer (as noted below) in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of the LLNS/LLNL nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY,
* LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
*****************************************************************************/
#ifndef AVT_NAMED_SELECTION_H
#define AVT_NAMED_SELECTION_H
#include <pipeline_exports.h>
#include <set>
#include <vector>
#include <visitstream.h>
typedef struct { int d; int z; } IntPair;
class PairCompare {
public:
bool operator()(const IntPair &x, const IntPair &y) const
{
if (x.d != y.d)
return (x.d > y.d);
if (x.z != y.z)
return (x.z > y.z);
return false;
}
};
// ****************************************************************************
// Class: avtNamedSelection
//
// Purpose:
// A selection of identifiers.
//
// Programmer: Hank Childs
// Creation: February 2, 2009
//
// ****************************************************************************
class PIPELINE_API avtNamedSelection
{
public:
avtNamedSelection(const std::string &);
virtual ~avtNamedSelection();
typedef enum
{
ZONE_ID = 0,
FLOAT_ID /* 1 */
} SELECTION_TYPE;
virtual void Read(const std::string &) = 0;
virtual void Write(const std::string &) = 0;
virtual bool GetDomainList(std::vector<int> &) { return false; };
virtual SELECTION_TYPE GetType(void) = 0;
const std::string &GetName(void) { return name; };
protected:
std::string name;
private:
// These methods are defined to prevent accidental use of bitwise copy
// implementations. If you want to re-define them to do something
// meaningful, that's fine.
avtNamedSelection(const avtNamedSelection &) {;};
avtNamedSelection &operator=(const avtNamedSelection &) { return *this; };
};
class PIPELINE_API avtZoneIdNamedSelection : public avtNamedSelection
{
public:
avtZoneIdNamedSelection(const std::string &);
avtZoneIdNamedSelection(const std::string &, int,
const int *, const int *);
virtual ~avtZoneIdNamedSelection();
virtual void Read(const std::string &);
virtual void Write(const std::string &);
virtual bool GetDomainList(std::vector<int> &);
virtual SELECTION_TYPE GetType(void) { return ZONE_ID; };
void GetMatchingIds(unsigned int *, int, std::vector<int> &);
protected:
std::vector<int> domId;
std::vector<int> zoneId;
std::set<IntPair, PairCompare> lookupSet;
};
class PIPELINE_API avtFloatingPointIdNamedSelection : public avtNamedSelection
{
public:
avtFloatingPointIdNamedSelection(const std::string &);
virtual ~avtFloatingPointIdNamedSelection();
virtual void Read(const std::string &);
virtual void Write(const std::string &);
virtual SELECTION_TYPE GetType(void) { return FLOAT_ID; };
protected:
std::vector<double> ids;
};
#endif
This diff is collapsed.
/*****************************************************************************
*
* Copyright (c) 2000 - 2008, Lawrence Livermore National Security, LLC
* Produced at the Lawrence Livermore National Laboratory
* LLNL-CODE-400142
* All rights reserved.
*
* This file is part of VisIt. For details, see https://visit.llnl.gov/. The
* full copyright notice is contained in the file COPYRIGHT located at the root
* of the VisIt distribution or at http://www.llnl.gov/visit/copyright.html.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the disclaimer below.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the disclaimer (as noted below) in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of the LLNS/LLNL nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL LAWRENCE LIVERMORE NATIONAL SECURITY,
* LLC, THE U.S. DEPARTMENT OF ENERGY OR CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
*****************************************************************************/
#ifndef AVT_NAMED_SELECTION_MANAGER_H
#define AVT_NAMED_SELECTION_MANAGER_H
#include <pipeline_exports.h>
#include <vector>
#include <avtDataObject.h>
#include <visitstream.h>
class avtNamedSelection;
// ****************************************************************************
// Class: avtNamedSelectionManager
//
// Purpose:
// Manager for named selections.
//
// Programmer: Hank Childs
// Creation: January 30, 2009
//
// ****************************************************************************
class PIPELINE_API avtNamedSelectionManager
{
public:
avtNamedSelectionManager();
virtual ~avtNamedSelectionManager();
static avtNamedSelectionManager *
GetInstance(void);
avtNamedSelection *
GetNamedSelection(const std::string &);
void CreateNamedSelection(avtDataObject_p, const std::string &);
void DeleteNamedSelection(const std::string &);
void LoadNamedSelection(const std::string &);
void SaveNamedSelection(const std::string &);
protected:
static avtNamedSelectionManager *instance;
std::vector<avtNamedSelection *> selList;
private:
// These methods are defined to prevent accidental use of bitwise copy
// implementations. If you want to re-define them to do something
// meaningful, that's fine.
avtNamedSelectionManager(const avtNamedSelectionManager &) {;};
avtNamedSelectionManager &operator=(const avtNamedSelectionManager &) { return *this; };
};
#endif
......@@ -581,6 +581,9 @@ Engine::Finalize(void)
// Tom Fogal, Mon Sep 1 14:19:45 EDT 2008
// Removed an assert.
//
// Hank Childs, Thu Jan 29 11:15:16 PST 2009
// Add NamedSelectionRPC.
//
// ****************************************************************************
void
......@@ -688,6 +691,7 @@ Engine::SetUpViewerInterface(int *argc, char **argv[])
simulationCommandRPC = new SimulationCommandRPC;
exportDatabaseRPC = new ExportDatabaseRPC;
constructDDFRPC = new ConstructDDFRPC;
namedSelectionRPC = new NamedSelectionRPC;
setEFileOpenOptionsRPC = new SetEFileOpenOptionsRPC;
xfer->Add(quitRPC);
......@@ -713,6 +717,7 @@ Engine::SetUpViewerInterface(int *argc, char **argv[])
xfer->Add(simulationCommandRPC);
xfer->Add(exportDatabaseRPC);
xfer->Add(constructDDFRPC);
xfer->Add(namedSelectionRPC);
xfer->Add(setEFileOpenOptionsRPC);
// Create an object to implement the RPCs
......@@ -742,6 +747,7 @@ Engine::SetUpViewerInterface(int *argc, char **argv[])
rpcExecutors.push_back(new RPCExecutor<SimulationCommandRPC>(simulationCommandRPC));
rpcExecutors.push_back(new RPCExecutor<ExportDatabaseRPC>(exportDatabaseRPC));
rpcExecutors.push_back(new RPCExecutor<ConstructDDFRPC>(constructDDFRPC));
rpcExecutors.push_back(new RPCExecutor<NamedSelectionRPC>(namedSelectionRPC));
rpcExecutors.push_back(new RPCExecutor<SetEFileOpenOptionsRPC>(setEFileOpenOptionsRPC));
// Hook up the expression list as an observed object.
......
......@@ -49,6 +49,7 @@ class ExecuteRPC;
class ExportDatabaseRPC;
class KeepAliveRPC;
class MakePlotRPC;
class NamedSelectionRPC;
class OpenDatabaseRPC;
class PickRPC;
class QueryRPC;
......@@ -181,6 +182,9 @@ class Xfer;
// Tom Fogal, Mon Aug 11 11:39:07 EDT 2008
// Instance variable to store how many X servers we should start up.
//
// Hank Childs, Thu Jan 29 11:12:04 PST 2009
// Add data member namedSelectionRPC.
//
// Tom Fogal, Mon Sep 1 12:47:57 EDT 2008
// Instance variable to store what kind of display we'll render with, and
// made SetupDisplay a method.
......@@ -331,6 +335,7 @@ class Engine
SimulationCommandRPC *simulationCommandRPC;
ExportDatabaseRPC *exportDatabaseRPC;
ConstructDDFRPC *constructDDFRPC;
NamedSelectionRPC *namedSelectionRPC;
SetEFileOpenOptionsRPC *setEFileOpenOptionsRPC;
// The metadata, filename, format, control data for a simulation
......
......@@ -71,6 +71,7 @@
#include <ExportDatabaseRPC.h>
#include <KeepAliveRPC.h>
#include <MakePlotRPC.h>