Commit 8bee5483 authored by bonnell's avatar bonnell

Added a wrapper for Ultra commands (python script utilizing PyParsing).

Added spatial extents to CurveMetaData. Added operator names to Plot state
object.  Added two new curve expressions: CurveDomain (modifies the domain
of a curve) and Curve, a macro wrapping curve expressions on y values 
(normal exprssions) and x values (CurveDomain expression).  Updated 
configuration to test for existence of PyParsing, needed for the wrapper.  
Added to the launcher and dist scripts to ensure the wrapper could be 
found and installed correctly.

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@6979 18c085ea-50e0-402c-830e-de6fd14e8384
parent 20029a12
......@@ -40,7 +40,7 @@
#include <DataNode.h>
// Type map format string
const char *avtCurveMetaData::TypeMapFormatString = "ssbssssbddbs";
const char *avtCurveMetaData::TypeMapFormatString = "ssbssssbddbddbs";
// ****************************************************************************
// Method: avtCurveMetaData::avtCurveMetaData
......@@ -64,6 +64,9 @@ avtCurveMetaData::avtCurveMetaData() :
validVariable = true;
xLabel = "X-Axis";
yLabel = "Y-Axis";
hasSpatialExtents = false;
minSpatialExtents = 0;
maxSpatialExtents = 0;
hasDataExtents = false;
minDataExtents = 0;
maxDataExtents = 0;
......@@ -95,6 +98,9 @@ avtCurveMetaData::avtCurveMetaData(const avtCurveMetaData &obj) :
xLabel = obj.xLabel;
yUnits = obj.yUnits;
yLabel = obj.yLabel;
hasSpatialExtents = obj.hasSpatialExtents;
minSpatialExtents = obj.minSpatialExtents;
maxSpatialExtents = obj.maxSpatialExtents;
hasDataExtents = obj.hasDataExtents;
minDataExtents = obj.minDataExtents;
maxDataExtents = obj.maxDataExtents;
......@@ -150,6 +156,9 @@ avtCurveMetaData::operator = (const avtCurveMetaData &obj)
xLabel = obj.xLabel;
yUnits = obj.yUnits;
yLabel = obj.yLabel;
hasSpatialExtents = obj.hasSpatialExtents;
minSpatialExtents = obj.minSpatialExtents;
maxSpatialExtents = obj.maxSpatialExtents;
hasDataExtents = obj.hasDataExtents;
minDataExtents = obj.minDataExtents;
maxDataExtents = obj.maxDataExtents;
......@@ -186,6 +195,9 @@ avtCurveMetaData::operator == (const avtCurveMetaData &obj) const
(xLabel == obj.xLabel) &&
(yUnits == obj.yUnits) &&
(yLabel == obj.yLabel) &&
(hasSpatialExtents == obj.hasSpatialExtents) &&
(minSpatialExtents == obj.minSpatialExtents) &&
(maxSpatialExtents == obj.maxSpatialExtents) &&
(hasDataExtents == obj.hasDataExtents) &&
(minDataExtents == obj.minDataExtents) &&
(maxDataExtents == obj.maxDataExtents) &&
......@@ -334,17 +346,20 @@ avtCurveMetaData::NewInstance(bool copy) const
void
avtCurveMetaData::SelectAll()
{
Select(ID_name, (void *)&name);
Select(ID_originalName, (void *)&originalName);
Select(ID_validVariable, (void *)&validVariable);
Select(ID_xUnits, (void *)&xUnits);
Select(ID_xLabel, (void *)&xLabel);
Select(ID_yUnits, (void *)&yUnits);
Select(ID_yLabel, (void *)&yLabel);
Select(ID_hasDataExtents, (void *)&hasDataExtents);
Select(ID_minDataExtents, (void *)&minDataExtents);
Select(ID_maxDataExtents, (void *)&maxDataExtents);
Select(ID_hideFromGUI, (void *)&hideFromGUI);
Select(ID_name, (void *)&name);
Select(ID_originalName, (void *)&originalName);
Select(ID_validVariable, (void *)&validVariable);
Select(ID_xUnits, (void *)&xUnits);
Select(ID_xLabel, (void *)&xLabel);
Select(ID_yUnits, (void *)&yUnits);
Select(ID_yLabel, (void *)&yLabel);
Select(ID_hasSpatialExtents, (void *)&hasSpatialExtents);
Select(ID_minSpatialExtents, (void *)&minSpatialExtents);
Select(ID_maxSpatialExtents, (void *)&maxSpatialExtents);
Select(ID_hasDataExtents, (void *)&hasDataExtents);
Select(ID_minDataExtents, (void *)&minDataExtents);
Select(ID_maxDataExtents, (void *)&maxDataExtents);
Select(ID_hideFromGUI, (void *)&hideFromGUI);
Select(ID_from1DScalarName, (void *)&from1DScalarName);
}
......@@ -397,6 +412,8 @@ avtCurveMetaData::avtCurveMetaData(const std::string &n)
//
// Arguments:
// n The name of the curve
// minS The minimum spatial extents
// maxS The maximum spatial extents
// minE The minimum data extents
// maxE The maximum data extents
//
......@@ -407,7 +424,7 @@ avtCurveMetaData::avtCurveMetaData(const std::string &n)
//
// ****************************************************************************
avtCurveMetaData::avtCurveMetaData(const std::string &n, double minE, double maxE)
avtCurveMetaData::avtCurveMetaData(const std::string &n, double minS, double maxS, double minE, double maxE)
: AttributeSubject(avtCurveMetaData::TypeMapFormatString)
{
// Initialize all members
......@@ -416,16 +433,19 @@ avtCurveMetaData::avtCurveMetaData(const std::string &n, double minE, double max
// Override some values.
name = n;
originalName = name;
hasSpatialExtents = true;
minSpatialExtents = minS;
maxSpatialExtents = maxS;
hasDataExtents = true;
minDataExtents = minE;
maxDataExtents = maxE;
}
// ****************************************************************************
// Method: avtCurveMetaData::SetExtents
// Method: avtCurveMetaData::SetSpatialExtents
//
// Purpose:
// Sets the extents of the curve variable.
// Sets the spatial extents of the curve variable.
//
// Arguments:
// extents Extents as <min value, max value>.
......@@ -438,7 +458,44 @@ avtCurveMetaData::avtCurveMetaData(const std::string &n, double minE, double max
// ****************************************************************************
void
avtCurveMetaData::SetExtents(const double *extents)
avtCurveMetaData::SetSpatialExtents(const double *extents)
{
if (extents == NULL)
{
hasSpatialExtents = false;
}
else
{
hasSpatialExtents = true;
minSpatialExtents = extents[0];
maxSpatialExtents = extents[1];
}
}
void
avtCurveMetaData::UnsetSpatialExtents()
{
hasSpatialExtents = false;
}
// ****************************************************************************
// Method: avtCurveMetaData::SetDataExtents
//
// Purpose:
// Sets the data extents of the curve variable.
//
// Arguments:
// extents Extents as <min value, max value>.
//
// Programmer: Kathleen Bonnell
// Creation: August 1, 2006
//
// Modifications:
//
// ****************************************************************************
void
avtCurveMetaData::SetDataExtents(const double *extents)
{
if (extents == NULL)
{
......@@ -453,7 +510,7 @@ avtCurveMetaData::SetExtents(const double *extents)
}
void
avtCurveMetaData::UnsetExtents()
avtCurveMetaData::UnsetDataExtents()
{
hasDataExtents = false;
}
......
......@@ -34,13 +34,15 @@ avtCurveMetaData::avtCurveMetaData(const std::string &n)
}
Function: avtCurveMetaData3
Declaration: avtCurveMetaData(const std::string &n, double minE, double maxE);
Declaration: avtCurveMetaData(const std::string &n, double minS, double maxS, double minE, double maxE);
Definition:
// ****************************************************************************
// Method: avtCurveMetaData constructor
//
// Arguments:
// n The name of the curve
// minS The minimum spatial extents
// maxS The maximum spatial extents
// minE The minimum data extents
// maxE The maximum data extents
//
......@@ -51,7 +53,7 @@ Definition:
//
// ****************************************************************************
avtCurveMetaData::avtCurveMetaData(const std::string &n, double minE, double maxE)
avtCurveMetaData::avtCurveMetaData(const std::string &n, double minS, double maxS, double minE, double maxE)
: AttributeSubject(avtCurveMetaData::TypeMapFormatString)
{
// Initialize all members
......@@ -60,19 +62,65 @@ avtCurveMetaData::avtCurveMetaData(const std::string &n, double minE, double max
// Override some values.
name = n;
originalName = name;
hasSpatialExtents = true;
minSpatialExtents = minS;
maxSpatialExtents = maxS;
hasDataExtents = true;
minDataExtents = minE;
maxDataExtents = maxE;
}
Function: SetSpatialExtents
Declaration: void SetSpatialExtents(const double *);
Definition:
// ****************************************************************************
// Method: avtCurveMetaData::SetSpatialExtents
//
// Purpose:
// Sets the spatial extents of the curve variable.
//
// Arguments:
// extents Extents as <min value, max value>.
//
// Programmer: Kathleen Bonnell
// Creation: August 1, 2006
//
// Modifications:
//
// ****************************************************************************
void
avtCurveMetaData::SetSpatialExtents(const double *extents)
{
if (extents == NULL)
{
hasSpatialExtents = false;
}
else
{
hasSpatialExtents = true;
minSpatialExtents = extents[0];
maxSpatialExtents = extents[1];
}
}
Function: UnsetSpatialExtents
Declaration: void UnsetSpatialExtents();
Definition:
void
avtCurveMetaData::UnsetSpatialExtents()
{
hasSpatialExtents = false;
}
Function: SetExtents
Declaration: void SetExtents(const double *);
Function: SetDataExtents
Declaration: void SetDataExtents(const double *);
Definition:
// ****************************************************************************
// Method: avtCurveMetaData::SetExtents
// Method: avtCurveMetaData::SetDataExtents
//
// Purpose:
// Sets the extents of the curve variable.
// Sets the data extents of the curve variable.
//
// Arguments:
// extents Extents as <min value, max value>.
......@@ -85,7 +133,7 @@ Definition:
// ****************************************************************************
void
avtCurveMetaData::SetExtents(const double *extents)
avtCurveMetaData::SetDataExtents(const double *extents)
{
if (extents == NULL)
{
......@@ -99,11 +147,11 @@ avtCurveMetaData::SetExtents(const double *extents)
}
}
Function: UnsetExtents
Declaration: void UnsetExtents();
Function: UnsetDataExtents
Declaration: void UnsetDataExtents();
Definition:
void
avtCurveMetaData::UnsetExtents()
avtCurveMetaData::UnsetDataExtents()
{
hasDataExtents = false;
}
......
......@@ -78,9 +78,11 @@ public:
// User-defined methods
avtCurveMetaData(const std::string &n);
avtCurveMetaData(const std::string &n, double minE, double maxE);
void SetExtents(const double *);
void UnsetExtents();
avtCurveMetaData(const std::string &n, double minS, double maxS, double minE, double maxE);
void SetSpatialExtents(const double *);
void UnsetSpatialExtents();
void SetDataExtents(const double *);
void UnsetDataExtents();
void Print(ostream &, int = 0) const;
// IDs that can be used to identify fields in case statements
......@@ -92,6 +94,9 @@ public:
ID_xLabel,
ID_yUnits,
ID_yLabel,
ID_hasSpatialExtents,
ID_minSpatialExtents,
ID_maxSpatialExtents,
ID_hasDataExtents,
ID_minDataExtents,
ID_maxDataExtents,
......@@ -100,17 +105,20 @@ public:
};
public:
std::string name;
std::string originalName;
bool validVariable;
std::string xUnits;
std::string xLabel;
std::string yUnits;
std::string yLabel;
bool hasDataExtents;
double minDataExtents;
double maxDataExtents;
bool hideFromGUI;
std::string name;
std::string originalName;
bool validVariable;
std::string xUnits;
std::string xLabel;
std::string yUnits;
std::string yLabel;
bool hasSpatialExtents;
double minSpatialExtents;
double maxSpatialExtents;
bool hasDataExtents;
double minDataExtents;
double maxDataExtents;
bool hideFromGUI;
std::string from1DScalarName;
private:
......
......@@ -18,6 +18,15 @@
<Field name="yLabel" label="Y label" type="string" access="public">
Y-Axis
</Field>
<Field name="hasSpatialExtents" label="Has spatial extents" type="bool" access="public">
false
</Field>
<Field name="minSpatialExtents" label="Minimum spatial extents" type="double" access="public">
0.000000
</Field>
<Field name="maxSpatialExtents" label="Maximum spatial extents" type="double" access="public">
0.000000
</Field>
<Field name="hasDataExtents" label="Has data extents" type="bool" access="public">
false
</Field>
......@@ -36,9 +45,13 @@
</Function>
<Function name="avtCurveMetaData3" user="true" member="true">
</Function>
<Function name="SetExtents" user="true" member="true">
<Function name="SetSpatialExtents" user="true" member="true">
</Function>
<Function name="UnsetSpatialExtents" user="true" member="true">
</Function>
<Function name="SetDataExtents" user="true" member="true">
</Function>
<Function name="UnsetExtents" user="true" member="true">
<Function name="UnsetDataExtents" user="true" member="true">
</Function>
<Function name="Print" user="true" member="true">
</Function>
......
......@@ -111,6 +111,9 @@ class ExprPipelineState;
// Sean Ahern, Wed Sep 10 12:21:41 EDT 2008
// Added a target centering.
//
// Kathleen Bonnell, Thu Apr 16 09:50:56 PDT 2009
// Added GetOutputVariableName.
//
// ****************************************************************************
class EXPRESSION_API avtExpressionFilter : virtual public
......@@ -132,6 +135,8 @@ class EXPRESSION_API avtExpressionFilter : virtual public
avtCentering, std::string name,
avtCentering targCent = AVT_UNKNOWN_CENT);
const char *GetOutputVariableName()
{ return outputVariableName; }
protected:
char *outputVariableName;
int currentTimeState;
......
/*****************************************************************************
*
* 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.
*
*****************************************************************************/
// ************************************************************************* //
// avtCurveDomainExpression.C //
// ************************************************************************* //
#include <avtCurveDomainExpression.h>
#include <math.h>
#include <float.h>
#include <vtkDataSet.h>
#include <vtkPointData.h>
#include <vtkRectilinearGrid.h>
#include <avtExtents.h>
#include <avtExpressionFilter.h>
#include <avtCommonDataFunctions.h>
#include <avtExprNode.h>
#include <DebugStream.h>
#include <ExpressionException.h>
#include <vtkVisItUtility.h>
// ****************************************************************************
// Method: avtCurveDomainExpression constructor
//
// Programmer: Kathleen Bonnell
// Creation: March 5, 2009
//
// ****************************************************************************
avtCurveDomainExpression::avtCurveDomainExpression()
{
;
}
// ****************************************************************************
// Method: avtCurveDomainExpression destructor
//
// Programmer: Kathleen Bonnell
// Creation: March 5, 2009
//
// ****************************************************************************
avtCurveDomainExpression::~avtCurveDomainExpression()
{
;
}
// ****************************************************************************
// Method: avtCurveDomainExpression::ExecuteData
//
// Purpose:
// Does the actual VTK code to modify the dataset.
//
// Arguments:
// inDS The input dataset.
// <unused> The domain number.
//
// Returns: The output dataset.
//
// Programmer: Kathleen Bonnell
// Creation: March 5, 2009
//
// Modifications:
//
// ****************************************************************************
vtkDataSet *
avtCurveDomainExpression::ExecuteData(vtkDataSet *in_ds, int index,
std::string label)
{
vtkDataArray *yval = in_ds->GetPointData()->GetArray(varnames[0]);
vtkDataArray *xval = in_ds->GetPointData()->GetArray(varnames[1]);
int npts = xval->GetNumberOfTuples();
vtkRectilinearGrid *rv = vtkVisItUtility::Create1DRGrid(npts, xval->GetDataType());
vtkDataArray *newX = rv->GetXCoordinates();
vtkDataArray *newY = yval->NewInstance();
newY->SetNumberOfTuples(npts);
newY->SetName(GetOutputVariableName());
rv->GetPointData()->SetScalars(newY);
newY->Delete();
for (int i = 0; i < npts; ++i)
{
newX->SetTuple1(i, xval->GetTuple1(i));
newY->SetTuple1(i, yval->GetTuple1(i));
}
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.
*
*****************************************************************************/
// ************************************************************************* //
// avtCurveDomainExpression.h //
// ************************************************************************* //
#ifndef AVT_CURVEDOMAIN_EXPRESSION_H
#define AVT_CURVEDOMAIN_EXPRESSION_H
#include <expression_exports.h>
#include <string>
#include <avtMultipleInputExpressionFilter.h>
// ****************************************************************************
// Class: avtCurveDomainExpression
//
// Purpose:
// This is an abstract type that allows derived types to create
// expressions one VTK dataset at a time.
//
// Programmer: Kathleen Bonnell
// Creation: March 5, 2009
//
// ****************************************************************************
class EXPRESSION_API avtCurveDomainExpression
: virtual public avtMultipleInputExpressionFilter
{
public:
avtCurveDomainExpression();
virtual ~avtCurveDomainExpression();
virtual const char *GetType() { return "avtCurveDomainExpression"; }
virtual const char *GetDescription()
{ return "Modifying domain of curve"; }
virtual int NumVariableArguments() { return 2; }
protected:
virtual vtkDataSet *ExecuteData(vtkDataSet *, int, std::string);
virtual vtkDataArray *DeriveVariable(vtkDataSet *) { return NULL;}
virtual avtVarType GetVariableType(void) { return AVT_CURVE; };
};
#endif
/*****************************************************************************
*
* 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.
*
*****************************************************************************/
// ************************************************************************* //
// avtCurveExpression.C //
// ************************************************************************* //
#include <avtCurveExpression.h>
#include <snprintf.h>
#include <DebugStream.h>
#include <ExpressionException.h>
#include <avtExprNode.h>
static const char* yFuncs[] = {
"sin",
"asin",
"cos",
"acos",
"tan",
"atan",
"abs",
"ln",
"exp",
"log10",
"sqr",
"sqrt"
};
static int nFuncs = 12;
static const char* xFuncs[] = {
"sinx",
"asinx",
"cosx",
"acosx",
"tanx",
"atanx",
"absx",
"lnx",
"expx",
"log10x",
"sqrx",
"sqrtx"
};
// ****************************************************************************
// Method: avtCurveExpression constructor
//
// Programmer: Kathleen Bonnell
// Creation: March 5, 2009
//
// ****************************************************************************
avtCurveExpression::avtCurveExpression()
{
xvar = -1;
}
// ****************************************************************************
// Method: avtCurveExpression destructor