Commit c7008abc authored by allens's avatar allens

added the ability to generate path lines using a period time basis

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@23206 18c085ea-50e0-402c-830e-de6fd14e8384
parent 14bce1d7
......@@ -336,6 +336,9 @@
<Field name="pathlinesOverrideStartingTime" label="Starting Time" type="double" enabler="pathlines:true">
0.000000
</Field>
<Field name="pathlinesPeriod" label="Pathlines Period" type="double">
0.0
</Field>
<Field name="pathlinesCMFE" label="CMFE" type="enum" subtype="PathlinesCMFE">
POS_CMFE
</Field>
......
......@@ -705,6 +705,7 @@ void PoincareAttributes::Init()
pathlines = false;
pathlinesOverrideStartingTimeFlag = false;
pathlinesOverrideStartingTime = 0;
pathlinesPeriod = 0;
pathlinesCMFE = POS_CMFE;
issueTerminationWarnings = true;
issueStiffnessWarnings = true;
......@@ -815,6 +816,7 @@ void PoincareAttributes::Copy(const PoincareAttributes &obj)
pathlines = obj.pathlines;
pathlinesOverrideStartingTimeFlag = obj.pathlinesOverrideStartingTimeFlag;
pathlinesOverrideStartingTime = obj.pathlinesOverrideStartingTime;
pathlinesPeriod = obj.pathlinesPeriod;
pathlinesCMFE = obj.pathlinesCMFE;
issueTerminationWarnings = obj.issueTerminationWarnings;
issueStiffnessWarnings = obj.issueStiffnessWarnings;
......@@ -1071,6 +1073,7 @@ PoincareAttributes::operator == (const PoincareAttributes &obj) const
(pathlines == obj.pathlines) &&
(pathlinesOverrideStartingTimeFlag == obj.pathlinesOverrideStartingTimeFlag) &&
(pathlinesOverrideStartingTime == obj.pathlinesOverrideStartingTime) &&
(pathlinesPeriod == obj.pathlinesPeriod) &&
(pathlinesCMFE == obj.pathlinesCMFE) &&
(issueTerminationWarnings == obj.issueTerminationWarnings) &&
(issueStiffnessWarnings == obj.issueStiffnessWarnings) &&
......@@ -1316,6 +1319,7 @@ PoincareAttributes::SelectAll()
Select(ID_pathlines, (void *)&pathlines);
Select(ID_pathlinesOverrideStartingTimeFlag, (void *)&pathlinesOverrideStartingTimeFlag);
Select(ID_pathlinesOverrideStartingTime, (void *)&pathlinesOverrideStartingTime);
Select(ID_pathlinesPeriod, (void *)&pathlinesPeriod);
Select(ID_pathlinesCMFE, (void *)&pathlinesCMFE);
Select(ID_issueTerminationWarnings, (void *)&issueTerminationWarnings);
Select(ID_issueStiffnessWarnings, (void *)&issueStiffnessWarnings);
......@@ -1787,6 +1791,12 @@ PoincareAttributes::CreateNode(DataNode *parentNode, bool completeSave, bool for
node->AddNode(new DataNode("pathlinesOverrideStartingTime", pathlinesOverrideStartingTime));
}
if(completeSave || !FieldsEqual(ID_pathlinesPeriod, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("pathlinesPeriod", pathlinesPeriod));
}
if(completeSave || !FieldsEqual(ID_pathlinesCMFE, &defaultObject))
{
addToParent = true;
......@@ -2193,6 +2203,8 @@ PoincareAttributes::SetFromNode(DataNode *parentNode)
SetPathlinesOverrideStartingTimeFlag(node->AsBool());
if((node = searchNode->GetNode("pathlinesOverrideStartingTime")) != 0)
SetPathlinesOverrideStartingTime(node->AsDouble());
if((node = searchNode->GetNode("pathlinesPeriod")) != 0)
SetPathlinesPeriod(node->AsDouble());
if((node = searchNode->GetNode("pathlinesCMFE")) != 0)
{
// Allow enums to be int or string in the config file
......@@ -2735,6 +2747,13 @@ PoincareAttributes::SetPathlinesOverrideStartingTime(double pathlinesOverrideSta
Select(ID_pathlinesOverrideStartingTime, (void *)&pathlinesOverrideStartingTime);
}
void
PoincareAttributes::SetPathlinesPeriod(double pathlinesPeriod_)
{
pathlinesPeriod = pathlinesPeriod_;
Select(ID_pathlinesPeriod, (void *)&pathlinesPeriod);
}
void
PoincareAttributes::SetPathlinesCMFE(PoincareAttributes::PathlinesCMFE pathlinesCMFE_)
{
......@@ -3248,6 +3267,12 @@ PoincareAttributes::GetPathlinesOverrideStartingTime() const
return pathlinesOverrideStartingTime;
}
double
PoincareAttributes::GetPathlinesPeriod() const
{
return pathlinesPeriod;
}
PoincareAttributes::PathlinesCMFE
PoincareAttributes::GetPathlinesCMFE() const
{
......@@ -3420,6 +3445,7 @@ PoincareAttributes::GetFieldName(int index) const
case ID_pathlines: return "pathlines";
case ID_pathlinesOverrideStartingTimeFlag: return "pathlinesOverrideStartingTimeFlag";
case ID_pathlinesOverrideStartingTime: return "pathlinesOverrideStartingTime";
case ID_pathlinesPeriod: return "pathlinesPeriod";
case ID_pathlinesCMFE: return "pathlinesCMFE";
case ID_issueTerminationWarnings: return "issueTerminationWarnings";
case ID_issueStiffnessWarnings: return "issueStiffnessWarnings";
......@@ -3521,6 +3547,7 @@ PoincareAttributes::GetFieldType(int index) const
case ID_pathlines: return FieldType_bool;
case ID_pathlinesOverrideStartingTimeFlag: return FieldType_bool;
case ID_pathlinesOverrideStartingTime: return FieldType_double;
case ID_pathlinesPeriod: return FieldType_double;
case ID_pathlinesCMFE: return FieldType_enum;
case ID_issueTerminationWarnings: return FieldType_bool;
case ID_issueStiffnessWarnings: return FieldType_bool;
......@@ -3622,6 +3649,7 @@ PoincareAttributes::GetFieldTypeName(int index) const
case ID_pathlines: return "bool";
case ID_pathlinesOverrideStartingTimeFlag: return "bool";
case ID_pathlinesOverrideStartingTime: return "double";
case ID_pathlinesPeriod: return "double";
case ID_pathlinesCMFE: return "enum";
case ID_issueTerminationWarnings: return "bool";
case ID_issueStiffnessWarnings: return "bool";
......@@ -4033,6 +4061,11 @@ PoincareAttributes::FieldsEqual(int index_, const AttributeGroup *rhs) const
retval = (pathlinesOverrideStartingTime == obj.pathlinesOverrideStartingTime);
}
break;
case ID_pathlinesPeriod:
{ // new scope
retval = (pathlinesPeriod == obj.pathlinesPeriod);
}
break;
case ID_pathlinesCMFE:
{ // new scope
retval = (pathlinesCMFE == obj.pathlinesCMFE);
......
......@@ -274,6 +274,7 @@ public:
void SetPathlines(bool pathlines_);
void SetPathlinesOverrideStartingTimeFlag(bool pathlinesOverrideStartingTimeFlag_);
void SetPathlinesOverrideStartingTime(double pathlinesOverrideStartingTime_);
void SetPathlinesPeriod(double pathlinesPeriod_);
void SetPathlinesCMFE(PathlinesCMFE pathlinesCMFE_);
void SetIssueTerminationWarnings(bool issueTerminationWarnings_);
void SetIssueStiffnessWarnings(bool issueStiffnessWarnings_);
......@@ -360,6 +361,7 @@ public:
bool GetPathlines() const;
bool GetPathlinesOverrideStartingTimeFlag() const;
double GetPathlinesOverrideStartingTime() const;
double GetPathlinesPeriod() const;
PathlinesCMFE GetPathlinesCMFE() const;
bool GetIssueTerminationWarnings() const;
bool GetIssueStiffnessWarnings() const;
......@@ -532,6 +534,7 @@ public:
ID_pathlines,
ID_pathlinesOverrideStartingTimeFlag,
ID_pathlinesOverrideStartingTime,
ID_pathlinesPeriod,
ID_pathlinesCMFE,
ID_issueTerminationWarnings,
ID_issueStiffnessWarnings,
......@@ -613,6 +616,7 @@ private:
bool pathlines;
bool pathlinesOverrideStartingTimeFlag;
double pathlinesOverrideStartingTime;
double pathlinesPeriod;
int pathlinesCMFE;
bool issueTerminationWarnings;
bool issueStiffnessWarnings;
......@@ -623,6 +627,6 @@ private:
static const char *TypeMapFormatString;
static const private_tmfs_t TmfsStruct;
};
#define POINCAREATTRIBUTES_TMFS "idiiiiDDDiibdDiidbddiddiiiiddiiiidddbbiasibibibibisbbbbbbiibdiibbiiiibbdibbbd"
#define POINCAREATTRIBUTES_TMFS "idiiiiDDDiibdDiidbddiddiiiiddiiiidddbbiasibibibibisbbbbbbiibdiibbiiiibbddibbbd"
#endif
......@@ -60,7 +60,7 @@ import llnl.visit.ColorAttribute;
public class PoincareAttributes extends AttributeSubject implements Plugin
{
private static int PoincareAttributes_numAdditionalAtts = 77;
private static int PoincareAttributes_numAdditionalAtts = 78;
// Enum values
public final static int SOURCETYPE_SPECIFIEDPOINT = 0;
......@@ -228,6 +228,7 @@ public class PoincareAttributes extends AttributeSubject implements Plugin
pathlines = false;
pathlinesOverrideStartingTimeFlag = false;
pathlinesOverrideStartingTime = 0;
pathlinesPeriod = 0;
pathlinesCMFE = PATHLINESCMFE_POS_CMFE;
issueTerminationWarnings = true;
issueStiffnessWarnings = true;
......@@ -323,6 +324,7 @@ public class PoincareAttributes extends AttributeSubject implements Plugin
pathlines = false;
pathlinesOverrideStartingTimeFlag = false;
pathlinesOverrideStartingTime = 0;
pathlinesPeriod = 0;
pathlinesCMFE = PATHLINESCMFE_POS_CMFE;
issueTerminationWarnings = true;
issueStiffnessWarnings = true;
......@@ -424,6 +426,7 @@ public class PoincareAttributes extends AttributeSubject implements Plugin
pathlines = obj.pathlines;
pathlinesOverrideStartingTimeFlag = obj.pathlinesOverrideStartingTimeFlag;
pathlinesOverrideStartingTime = obj.pathlinesOverrideStartingTime;
pathlinesPeriod = obj.pathlinesPeriod;
pathlinesCMFE = obj.pathlinesCMFE;
issueTerminationWarnings = obj.issueTerminationWarnings;
issueStiffnessWarnings = obj.issueStiffnessWarnings;
......@@ -540,6 +543,7 @@ public class PoincareAttributes extends AttributeSubject implements Plugin
(pathlines == obj.pathlines) &&
(pathlinesOverrideStartingTimeFlag == obj.pathlinesOverrideStartingTimeFlag) &&
(pathlinesOverrideStartingTime == obj.pathlinesOverrideStartingTime) &&
(pathlinesPeriod == obj.pathlinesPeriod) &&
(pathlinesCMFE == obj.pathlinesCMFE) &&
(issueTerminationWarnings == obj.issueTerminationWarnings) &&
(issueStiffnessWarnings == obj.issueStiffnessWarnings) &&
......@@ -1023,34 +1027,40 @@ public class PoincareAttributes extends AttributeSubject implements Plugin
Select(71);
}
public void SetPathlinesPeriod(double pathlinesPeriod_)
{
pathlinesPeriod = pathlinesPeriod_;
Select(72);
}
public void SetPathlinesCMFE(int pathlinesCMFE_)
{
pathlinesCMFE = pathlinesCMFE_;
Select(72);
Select(73);
}
public void SetIssueTerminationWarnings(boolean issueTerminationWarnings_)
{
issueTerminationWarnings = issueTerminationWarnings_;
Select(73);
Select(74);
}
public void SetIssueStiffnessWarnings(boolean issueStiffnessWarnings_)
{
issueStiffnessWarnings = issueStiffnessWarnings_;
Select(74);
Select(75);
}
public void SetIssueCriticalPointsWarnings(boolean issueCriticalPointsWarnings_)
{
issueCriticalPointsWarnings = issueCriticalPointsWarnings_;
Select(75);
Select(76);
}
public void SetCriticalPointThreshold(double criticalPointThreshold_)
{
criticalPointThreshold = criticalPointThreshold_;
Select(76);
Select(77);
}
// Property getting methods
......@@ -1126,6 +1136,7 @@ public class PoincareAttributes extends AttributeSubject implements Plugin
public boolean GetPathlines() { return pathlines; }
public boolean GetPathlinesOverrideStartingTimeFlag() { return pathlinesOverrideStartingTimeFlag; }
public double GetPathlinesOverrideStartingTime() { return pathlinesOverrideStartingTime; }
public double GetPathlinesPeriod() { return pathlinesPeriod; }
public int GetPathlinesCMFE() { return pathlinesCMFE; }
public boolean GetIssueTerminationWarnings() { return issueTerminationWarnings; }
public boolean GetIssueStiffnessWarnings() { return issueStiffnessWarnings; }
......@@ -1280,14 +1291,16 @@ public class PoincareAttributes extends AttributeSubject implements Plugin
if(WriteSelect(71, buf))
buf.WriteDouble(pathlinesOverrideStartingTime);
if(WriteSelect(72, buf))
buf.WriteInt(pathlinesCMFE);
buf.WriteDouble(pathlinesPeriod);
if(WriteSelect(73, buf))
buf.WriteBool(issueTerminationWarnings);
buf.WriteInt(pathlinesCMFE);
if(WriteSelect(74, buf))
buf.WriteBool(issueStiffnessWarnings);
buf.WriteBool(issueTerminationWarnings);
if(WriteSelect(75, buf))
buf.WriteBool(issueCriticalPointsWarnings);
buf.WriteBool(issueStiffnessWarnings);
if(WriteSelect(76, buf))
buf.WriteBool(issueCriticalPointsWarnings);
if(WriteSelect(77, buf))
buf.WriteDouble(criticalPointThreshold);
}
......@@ -1513,18 +1526,21 @@ public class PoincareAttributes extends AttributeSubject implements Plugin
SetPathlinesOverrideStartingTime(buf.ReadDouble());
break;
case 72:
SetPathlinesCMFE(buf.ReadInt());
SetPathlinesPeriod(buf.ReadDouble());
break;
case 73:
SetIssueTerminationWarnings(buf.ReadBool());
SetPathlinesCMFE(buf.ReadInt());
break;
case 74:
SetIssueStiffnessWarnings(buf.ReadBool());
SetIssueTerminationWarnings(buf.ReadBool());
break;
case 75:
SetIssueCriticalPointsWarnings(buf.ReadBool());
SetIssueStiffnessWarnings(buf.ReadBool());
break;
case 76:
SetIssueCriticalPointsWarnings(buf.ReadBool());
break;
case 77:
SetCriticalPointThreshold(buf.ReadDouble());
break;
}
......@@ -1737,6 +1753,7 @@ public class PoincareAttributes extends AttributeSubject implements Plugin
str = str + boolToString("pathlines", pathlines, indent) + "\n";
str = str + boolToString("pathlinesOverrideStartingTimeFlag", pathlinesOverrideStartingTimeFlag, indent) + "\n";
str = str + doubleToString("pathlinesOverrideStartingTime", pathlinesOverrideStartingTime, indent) + "\n";
str = str + doubleToString("pathlinesPeriod", pathlinesPeriod, indent) + "\n";
str = str + indent + "pathlinesCMFE = ";
if(pathlinesCMFE == PATHLINESCMFE_CONN_CMFE)
str = str + "PATHLINESCMFE_CONN_CMFE";
......@@ -1824,6 +1841,7 @@ public class PoincareAttributes extends AttributeSubject implements Plugin
private boolean pathlines;
private boolean pathlinesOverrideStartingTimeFlag;
private double pathlinesOverrideStartingTime;
private double pathlinesPeriod;
private int pathlinesCMFE;
private boolean issueTerminationWarnings;
private boolean issueStiffnessWarnings;
......
......@@ -648,6 +648,8 @@ PyPoincareAttributes_ToString(const PoincareAttributes *atts, const char *prefix
str += tmpStr;
SNPRINTF(tmpStr, 1000, "%spathlinesOverrideStartingTime = %g\n", prefix, atts->GetPathlinesOverrideStartingTime());
str += tmpStr;
SNPRINTF(tmpStr, 1000, "%spathlinesPeriod = %g\n", prefix, atts->GetPathlinesPeriod());
str += tmpStr;
const char *pathlinesCMFE_names = "CONN_CMFE, POS_CMFE";
switch (atts->GetPathlinesCMFE())
{
......@@ -2734,6 +2736,30 @@ PoincareAttributes_GetPathlinesOverrideStartingTime(PyObject *self, PyObject *ar
return retval;
}
/*static*/ PyObject *
PoincareAttributes_SetPathlinesPeriod(PyObject *self, PyObject *args)
{
PoincareAttributesObject *obj = (PoincareAttributesObject *)self;
double dval;
if(!PyArg_ParseTuple(args, "d", &dval))
return NULL;
// Set the pathlinesPeriod in the object.
obj->data->SetPathlinesPeriod(dval);
Py_INCREF(Py_None);
return Py_None;
}
/*static*/ PyObject *
PoincareAttributes_GetPathlinesPeriod(PyObject *self, PyObject *args)
{
PoincareAttributesObject *obj = (PoincareAttributesObject *)self;
PyObject *retval = PyFloat_FromDouble(obj->data->GetPathlinesPeriod());
return retval;
}
/*static*/ PyObject *
PoincareAttributes_SetPathlinesCMFE(PyObject *self, PyObject *args)
{
......@@ -3011,6 +3037,8 @@ PyMethodDef PyPoincareAttributes_methods[POINCAREATTRIBUTES_NMETH] = {
{"GetPathlinesOverrideStartingTimeFlag", PoincareAttributes_GetPathlinesOverrideStartingTimeFlag, METH_VARARGS},
{"SetPathlinesOverrideStartingTime", PoincareAttributes_SetPathlinesOverrideStartingTime, METH_VARARGS},
{"GetPathlinesOverrideStartingTime", PoincareAttributes_GetPathlinesOverrideStartingTime, METH_VARARGS},
{"SetPathlinesPeriod", PoincareAttributes_SetPathlinesPeriod, METH_VARARGS},
{"GetPathlinesPeriod", PoincareAttributes_GetPathlinesPeriod, METH_VARARGS},
{"SetPathlinesCMFE", PoincareAttributes_SetPathlinesCMFE, METH_VARARGS},
{"GetPathlinesCMFE", PoincareAttributes_GetPathlinesCMFE, METH_VARARGS},
{"SetIssueTerminationWarnings", PoincareAttributes_SetIssueTerminationWarnings, METH_VARARGS},
......@@ -3334,6 +3362,8 @@ PyPoincareAttributes_getattr(PyObject *self, char *name)
return PoincareAttributes_GetPathlinesOverrideStartingTimeFlag(self, NULL);
if(strcmp(name, "pathlinesOverrideStartingTime") == 0)
return PoincareAttributes_GetPathlinesOverrideStartingTime(self, NULL);
if(strcmp(name, "pathlinesPeriod") == 0)
return PoincareAttributes_GetPathlinesPeriod(self, NULL);
if(strcmp(name, "pathlinesCMFE") == 0)
return PoincareAttributes_GetPathlinesCMFE(self, NULL);
if(strcmp(name, "CONN_CMFE") == 0)
......@@ -3507,6 +3537,8 @@ PyPoincareAttributes_setattr(PyObject *self, char *name, PyObject *args)
obj = PoincareAttributes_SetPathlinesOverrideStartingTimeFlag(self, tuple);
else if(strcmp(name, "pathlinesOverrideStartingTime") == 0)
obj = PoincareAttributes_SetPathlinesOverrideStartingTime(self, tuple);
else if(strcmp(name, "pathlinesPeriod") == 0)
obj = PoincareAttributes_SetPathlinesPeriod(self, tuple);
else if(strcmp(name, "pathlinesCMFE") == 0)
obj = PoincareAttributes_SetPathlinesCMFE(self, tuple);
else if(strcmp(name, "issueTerminationWarnings") == 0)
......
......@@ -44,7 +44,7 @@
//
// Functions exposed to the VisIt module.
//
#define POINCAREATTRIBUTES_NMETH 156
#define POINCAREATTRIBUTES_NMETH 158
void PyPoincareAttributes_StartUp(PoincareAttributes *subj, void *data);
void PyPoincareAttributes_CloseDown();
PyMethodDef * PyPoincareAttributes_GetMethodTable(int *nMethods);
......
......@@ -294,7 +294,8 @@ avtPoincareFilter::CreateIntegralCurve( const avtIVPSolver* model,
// need at least these three attributes
unsigned char attr = avtStateRecorderIntegralCurve::SAMPLE_POSITION;
avtPoincareIC *rv = new avtPoincareIC( attr, model, dir,
avtPoincareIC *rv = new avtPoincareIC( 0, false, 0,
attr, model, dir,
t_start, p_start, v_start, ID );
if (intersectObj)
......
......@@ -407,9 +407,10 @@ avtPoincarePlot::SetAtts(const AttributeGroup *a)
? PICS_CONN_CMFE : PICS_POS_CMFE);
poincareFilter->SetPathlines(atts.GetPathlines(),
atts.GetPathlinesOverrideStartingTimeFlag(),
atts.GetPathlinesOverrideStartingTime(),
CMFEType);
atts.GetPathlinesOverrideStartingTimeFlag(),
atts.GetPathlinesOverrideStartingTime(),
atts.GetPathlinesPeriod(),
CMFEType);
poincareFilter->IssueWarningForMaxStepsTermination(atts.GetIssueTerminationWarnings());
poincareFilter->IssueWarningForStiffness(atts.GetIssueStiffnessWarnings());
......
......@@ -120,8 +120,6 @@ private:
void SetLegendRanges(void);
void SetPointGlyphSize();
};
#endif
......@@ -517,6 +517,8 @@ PyStreamlineAttributes_ToString(const StreamlineAttributes *atts, const char *pr
str += tmpStr;
SNPRINTF(tmpStr, 1000, "%spathlinesOverrideStartingTime = %g\n", prefix, atts->GetPathlinesOverrideStartingTime());
str += tmpStr;
SNPRINTF(tmpStr, 1000, "%spathlinesPeriod = %g\n", prefix, atts->GetPathlinesPeriod());
str += tmpStr;
const char *pathlinesCMFE_names = "CONN_CMFE, POS_CMFE";
switch (atts->GetPathlinesCMFE())
{
......@@ -2378,6 +2380,30 @@ StreamlineAttributes_GetPathlinesOverrideStartingTime(PyObject *self, PyObject *
return retval;
}
/*static*/ PyObject *
StreamlineAttributes_SetPathlinesPeriod(PyObject *self, PyObject *args)
{
StreamlineAttributesObject *obj = (StreamlineAttributesObject *)self;
double dval;
if(!PyArg_ParseTuple(args, "d", &dval))
return NULL;
// Set the pathlinesPeriod in the object.
obj->data->SetPathlinesPeriod(dval);
Py_INCREF(Py_None);
return Py_None;
}
/*static*/ PyObject *
StreamlineAttributes_GetPathlinesPeriod(PyObject *self, PyObject *args)
{
StreamlineAttributesObject *obj = (StreamlineAttributesObject *)self;
PyObject *retval = PyFloat_FromDouble(obj->data->GetPathlinesPeriod());
return retval;
}
/*static*/ PyObject *
StreamlineAttributes_SetPathlinesCMFE(PyObject *self, PyObject *args)
{
......@@ -4051,6 +4077,8 @@ PyMethodDef PyStreamlineAttributes_methods[STREAMLINEATTRIBUTES_NMETH] = {
{"GetPathlinesOverrideStartingTimeFlag", StreamlineAttributes_GetPathlinesOverrideStartingTimeFlag, METH_VARARGS},
{"SetPathlinesOverrideStartingTime", StreamlineAttributes_SetPathlinesOverrideStartingTime, METH_VARARGS},
{"GetPathlinesOverrideStartingTime", StreamlineAttributes_GetPathlinesOverrideStartingTime, METH_VARARGS},
{"SetPathlinesPeriod", StreamlineAttributes_SetPathlinesPeriod, METH_VARARGS},
{"GetPathlinesPeriod", StreamlineAttributes_GetPathlinesPeriod, METH_VARARGS},
{"SetPathlinesCMFE", StreamlineAttributes_SetPathlinesCMFE, METH_VARARGS},
{"GetPathlinesCMFE", StreamlineAttributes_GetPathlinesCMFE, METH_VARARGS},
{"SetCoordinateSystem", StreamlineAttributes_SetCoordinateSystem, METH_VARARGS},
......@@ -4370,6 +4398,8 @@ PyStreamlineAttributes_getattr(PyObject *self, char *name)
return StreamlineAttributes_GetPathlinesOverrideStartingTimeFlag(self, NULL);
if(strcmp(name, "pathlinesOverrideStartingTime") == 0)
return StreamlineAttributes_GetPathlinesOverrideStartingTime(self, NULL);
if(strcmp(name, "pathlinesPeriod") == 0)
return StreamlineAttributes_GetPathlinesPeriod(self, NULL);
if(strcmp(name, "pathlinesCMFE") == 0)
return StreamlineAttributes_GetPathlinesCMFE(self, NULL);
if(strcmp(name, "CONN_CMFE") == 0)
......@@ -4673,6 +4703,8 @@ PyStreamlineAttributes_setattr(PyObject *self, char *name, PyObject *args)
obj = StreamlineAttributes_SetPathlinesOverrideStartingTimeFlag(self, tuple);
else if(strcmp(name, "pathlinesOverrideStartingTime") == 0)
obj = StreamlineAttributes_SetPathlinesOverrideStartingTime(self, tuple);
else if(strcmp(name, "pathlinesPeriod") == 0)
obj = StreamlineAttributes_SetPathlinesPeriod(self, tuple);
else if(strcmp(name, "pathlinesCMFE") == 0)
obj = StreamlineAttributes_SetPathlinesCMFE(self, tuple);
else if(strcmp(name, "coordinateSystem") == 0)
......
......@@ -44,7 +44,7 @@
//
// Functions exposed to the VisIt module.
//
#define STREAMLINEATTRIBUTES_NMETH 212
#define STREAMLINEATTRIBUTES_NMETH 214
void PyStreamlineAttributes_StartUp(StreamlineAttributes *subj, void *data);
void PyStreamlineAttributes_CloseDown();
PyMethodDef * PyStreamlineAttributes_GetMethodTable(int *nMethods);
......
......@@ -282,6 +282,9 @@
<Field name="pathlinesOverrideStartingTime" label="Starting Time" type="double" enabler="pathlines:true">
0.000000
</Field>
<Field name="pathlinesPeriod" label="Pathlines Period" type="double">
0.0
</Field>
<Field name="pathlinesCMFE" label="CMFE" type="enum" subtype="PathlinesCMFE">
POS_CMFE
</Field>
......
......@@ -704,6 +704,7 @@ void StreamlineAttributes::Init()
pathlines = false;
pathlinesOverrideStartingTimeFlag = false;
pathlinesOverrideStartingTime = 0;
pathlinesPeriod = 0;
pathlinesCMFE = POS_CMFE;
coordinateSystem = AsIs;
phiScalingFlag = false;
......@@ -853,6 +854,7 @@ void StreamlineAttributes::Copy(const StreamlineAttributes &obj)
pathlines = obj.pathlines;
pathlinesOverrideStartingTimeFlag = obj.pathlinesOverrideStartingTimeFlag;
pathlinesOverrideStartingTime = obj.pathlinesOverrideStartingTime;
pathlinesPeriod = obj.pathlinesPeriod;
pathlinesCMFE = obj.pathlinesCMFE;
coordinateSystem = obj.coordinateSystem;
phiScalingFlag = obj.phiScalingFlag;
......@@ -1162,6 +1164,7 @@ StreamlineAttributes::operator == (const StreamlineAttributes &obj) const
(pathlines == obj.pathlines) &&
(pathlinesOverrideStartingTimeFlag == obj.pathlinesOverrideStartingTimeFlag) &&
(pathlinesOverrideStartingTime == obj.pathlinesOverrideStartingTime) &&
(pathlinesPeriod == obj.pathlinesPeriod) &&
(pathlinesCMFE == obj.pathlinesCMFE) &&
(coordinateSystem == obj.coordinateSystem) &&
(phiScalingFlag == obj.phiScalingFlag) &&
......@@ -1523,6 +1526,7 @@ StreamlineAttributes::SelectAll()
Select(ID_pathlines, (void *)&pathlines);
Select(ID_pathlinesOverrideStartingTimeFlag, (void *)&pathlinesOverrideStartingTimeFlag);
Select(ID_pathlinesOverrideStartingTime, (void *)&pathlinesOverrideStartingTime);
Select(ID_pathlinesPeriod, (void *)&pathlinesPeriod);
Select(ID_pathlinesCMFE, (void *)&pathlinesCMFE);
Select(ID_coordinateSystem, (void *)&coordinateSystem);
Select(ID_phiScalingFlag, (void *)&phiScalingFlag);
......@@ -1882,6 +1886,12 @@ StreamlineAttributes::CreateNode(DataNode *parentNode, bool completeSave, bool f
node->AddNode(new DataNode("pathlinesOverrideStartingTime", pathlinesOverrideStartingTime));
}
if(completeSave || !FieldsEqual(ID_pathlinesPeriod, &defaultObject))
{
addToParent = true;
node->AddNode(new DataNode("pathlinesPeriod", pathlinesPeriod));
}
if(completeSave || !FieldsEqual(ID_pathlinesCMFE, &defaultObject))
{
addToParent = true;
......@@ -2470,6 +2480,8 @@ StreamlineAttributes::SetFromNode(DataNode *parentNode)
SetPathlinesOverrideStartingTimeFlag(node->AsBool());
if((node = searchNode->GetNode("pathlinesOverrideStartingTime")) != 0)
SetPathlinesOverrideStartingTime(node->AsDouble());
if((node = searchNode->GetNode("pathlinesPeriod")) != 0)
SetPathlinesPeriod(node->AsDouble());
if((node = searchNode->GetNode("pathlinesCMFE")) != 0)
{
// Allow enums to be int or string in the config file
......@@ -3105,6 +3117,13 @@ StreamlineAttributes::SetPathlinesOverrideStartingTime(double pathlinesOverrideS
Select(ID_pathlinesOverrideStartingTime, (void *)&pathlinesOverrideStartingTime);
}
void
StreamlineAttributes::SetPathlinesPeriod(double pathlinesPeriod_)
{
pathlinesPeriod = pathlinesPeriod_;
Select(ID_pathlinesPeriod, (void *)&pathlinesPeriod);
}
void
StreamlineAttributes::SetPathlinesCMFE(StreamlineAttributes::PathlinesCMFE pathlinesCMFE_)
{
......@@ -3872,6 +3891,12 @@ StreamlineAttributes::GetPathlinesOverrideStartingTime() const
return pathlinesOverrideStartingTime;
}
double
StreamlineAttributes::GetPathlinesPeriod() const
{
return pathlinesPeriod;
}
StreamlineAttributes::PathlinesCMFE
StreamlineAttributes::GetPathlinesCMFE() const
{
......@@ -4430,6 +4455,7 @@ StreamlineAttributes::GetFieldName(int index) const
case ID_pathlines: return "pathlines";
case ID_pathlinesOverrideStartingTimeFlag: return "pathlinesOverrideStartingTimeFlag";
case ID_pathlinesOverrideStartingTime: return "pathlinesOverrideStartingTime";
case ID_pathlinesPeriod: return "pathlinesPeriod";
case ID_pathlinesCMFE: return "pathlinesCMFE";
case ID_coordinateSystem: return "coordinateSystem";
case ID_phiScalingFlag: return "phiScalingFlag";
......@@ -4559,6 +4585,7 @@ StreamlineAttributes::GetFieldType(int index) const
case ID_pathlines: return FieldType_bool;
case ID_pathlinesOverrideStartingTimeFlag: return FieldType_bool;
case ID_pathlinesOverrideStartingTime: return FieldType_double;
case ID_pathlinesPeriod: return FieldType_double;
case ID_pathlinesCMFE: return FieldType_enum;