[Bf-blender-cvs] [ca26093] soc-2014-fluid: functions for scenarios parsing added
Roman Pogribnyi
noreply at git.blender.org
Mon Aug 18 16:52:20 CEST 2014
Commit: ca26093a2c8ae98fefafe9b370575d7db7e9aaf0
Author: Roman Pogribnyi
Date: Mon Aug 18 16:01:37 2014 +0200
Branches: soc-2014-fluid
https://developer.blender.org/rBca26093a2c8ae98fefafe9b370575d7db7e9aaf0
functions for scenarios parsing added
===================================================================
M intern/smoke/intern/MANTA.cpp
M intern/smoke/intern/MANTA.h
===================================================================
diff --git a/intern/smoke/intern/MANTA.cpp b/intern/smoke/intern/MANTA.cpp
index 91e02ba..d4fa3b7 100644
--- a/intern/smoke/intern/MANTA.cpp
+++ b/intern/smoke/intern/MANTA.cpp
@@ -553,3 +553,51 @@ void generate_manta_sim_file(Scene *scene, SmokeModifierData *smd)
runMantaScript(ss.str(),a);
}
+std::string getRealValue(SmokeDomainSettings *sds, Scene *s, const std::string& varName)
+{
+ return "";
+}
+
+std::string parseLine(SmokeDomainSettings *sds, Scene *s, const string& line)
+{
+ if (line.size() == 0) return "";
+ string res = "";
+ int currPos = 0, start_del = 0, end_del = -1;
+ bool readingVar = false;
+ const char delimiter = '$';
+ while (currPos < line.size()){
+ if(line[currPos] == delimiter && ! readingVar){
+ readingVar = true;
+ start_del = currPos + 1;
+ res += line.substr(end_del + 1, currPos - end_del -1);
+ }
+ else if(line[currPos] == delimiter && readingVar){
+ readingVar = false;
+ end_del = currPos;
+ res += getRealValue(sds,s,line.substr(start_del, currPos - start_del));
+ }
+ currPos ++;
+ }
+ res += line.substr(end_del+1, line.size()- end_del);
+ return res;
+}
+
+std::string parseFile(SmokeDomainSettings *sds, Scene *s, char *file)
+{
+ ifstream f (file);
+ ofstream of("scenario_p.py");
+ string line="";
+ if (f.is_open()){
+ while(getline(f,line)){
+ of << parseLine(sds,s,line) << "\n";
+ }
+ f.close();
+ }
+ else{
+ printf ("Error: No scenario file found");
+ }
+ of.close();
+ return "";
+}
+
+
diff --git a/intern/smoke/intern/MANTA.h b/intern/smoke/intern/MANTA.h
index 247f3db..7ebde51 100644
--- a/intern/smoke/intern/MANTA.h
+++ b/intern/smoke/intern/MANTA.h
@@ -64,5 +64,11 @@ void generate_manta_sim_file(Scene *scene, SmokeModifierData *smd);
void manta_sim_step(int frame);
+std::string getRealValue(SmokeDomainSettings *sds, Scene *s, const string& varName);
+
+std::string parseLine(SmokeDomainSettings *sds, Scene *s, const string& line);
+
+std::string parseFile(SmokeDomainSettings *sds, Scene *s, char *file);
+
#endif /* MANTA_H */
More information about the Bf-blender-cvs
mailing list