12 #ifndef HEJNOWICZ_SURFACE_HPP
13 #define HEJNOWICZ_SURFACE_HPP
32 enum ParmNames { puS,
pvR, pA, pC, pD, pScale, pLength, pGrowthScale, pGrowthType, pGrowthFunc, pNumParms };
56 : vertexData(vData), surface(surf) {}
70 QVector <QString> vec(pNumParms);
77 vec[pScale] =
"Scale";
78 vec[pLength] =
"Length";
79 vec[pGrowthScale] =
"Growth Scale";
80 vec[pGrowthType] =
"Growth Type";
81 vec[pGrowthFunc] =
"Growth Function";
88 QVector <QString> vec(pNumParms);
95 vec[pScale] =
"Surface scaling";
96 vec[pLength] =
"Surface length";
97 vec[pGrowthScale] =
"Growth scale";
98 vec[pGrowthType] =
"Growth type";
99 vec[pGrowthFunc] =
"Growth function file, clear for growth model 2 from Hejnowicz et al. 1993.";
106 QVector <QString> vec(pNumParms);
109 vec[pvR] =
"0.785398163";
113 vec[pScale] =
"1000.0";
114 vec[pLength] =
"2000.0";
115 vec[pGrowthScale] =
"1000.0";
116 vec[pGrowthType] =
"Hejnowicz";
117 vec[pGrowthFunc] =
"HejnowiczGrowth.func";
123 bool processParms(
const QStringList &parms);
133 bool updateNormal(
vertex p);
142 bool initialize(VertexAttr *vData,
const QStringList &parms);
145 bool growPoint(
vertex p,
double dt,
double time);
154 bool setGrowthMap(std::map<double, double> &growthMap);
157 enum GrowthType {GROWTH_HEJN, GROWTH_FUNC, GROWTH_MAP};
162 double growthMapFunc(
double s);
165 VertexAttr *vertexData;
176 QString growthFuncFile;
178 GrowthType growthType;
182 std::vector<double> growthTab;
183 std::vector<double> velocityCart;
184 std::vector<double> velocityNRS;