35 enum CurveType {UNKNOWN, PUMP, EFFICIENCY, VOLUME, HEADLOSS};
38 static const char* CurveTypeWords[];
41 Curve(std::string name_);
45 void setType(
int curveType);
46 void addData(
double x,
double y);
53 void findSegment(
double xseg,
double& slope,
double& intercept);
54 double getYofX(
double x);
55 double getXofY(
double y);
59 std::vector<double> xData;
60 std::vector<double> yData;
66 inline void Curve::setType(
int curveType)
67 { type = (CurveType)curveType; }
69 inline void Curve::addData(
double x,
double y)
70 { xData.push_back(x); yData.push_back(y);}
72 inline int Curve::size() {
return xData.size(); }
74 inline int Curve::curveType() {
return (
int)type; }
76 inline double Curve::x(
int i) {
return xData.at(i); }
78 inline double Curve::y(
int i) {
return yData.at(i); }
Abstract parent class for all pipe network components.
Definition: element.h:19
Describes the Element class.
int index
index in array of elements
Definition: element.h:29
An ordered collection of x,y data pairs.
Definition: curve.h:30