[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