Files @ 413a4067bfff
Branch filter:

Location: EI/VirtualLeaf/src/build_models/translate_plugin.pl

Roeland Merks
Changed interface for model plugins to make usage of pointers and references consistent.
Added codes for tutorial belonging to VLeaf manuscript.
Something changed in modelcatalogue. I'm not sure what...

user: Roeland Merks <roeland.merks@cwi.nl>
branch 'default'
added src/TutorialCode/Tutorial0/mymodel.cpp
added src/TutorialCode/Tutorial0/mymodel.h
added src/TutorialCode/Tutorial0/mymodel.pro
added src/TutorialCode/Tutorial1/mymodel.cpp
added src/TutorialCode/Tutorial1/mymodel.h
added src/TutorialCode/Tutorial1/mymodel.pro
added src/TutorialCode/Tutorial2/mymodel.cpp
added src/TutorialCode/Tutorial2/mymodel.h
added src/TutorialCode/Tutorial2/mymodel.pro
added src/TutorialCode/Tutorial3/mymodel.cpp
added src/TutorialCode/Tutorial3/mymodel.h
added src/TutorialCode/Tutorial3/mymodel.pro
added src/TutorialCode/Tutorial4/mymodel.cpp
added src/TutorialCode/Tutorial4/mymodel.h
added src/TutorialCode/Tutorial4/mymodel.pro
added src/TutorialCode/Tutorial5/mymodel.cpp
added src/TutorialCode/Tutorial5/mymodel.h
added src/TutorialCode/Tutorial5/mymodel.pro
added src/build_models/translate_plugin.pl
changed src/VirtualLeafpar.tmpl
changed src/build_models/auxingrowthplugin.cpp
changed src/build_models/auxingrowthplugin.h
changed src/build_models/meinhardtplugin.cpp
changed src/build_models/meinhardtplugin.h
changed src/build_models/plugin_auxingrowth.pro
changed src/build_models/plugin_leaf.pro
changed src/build_models/plugin_meinhardt.pro
changed src/build_models/plugin_test.pro
changed src/cell.cpp
changed src/cellbase.cpp
changed src/cellbase.h
changed src/libplugin.pro
changed src/mesh.cpp
changed src/mesh.h
changed src/modelcatalogue.cpp
changed src/simplugin.h
#!/usr/bin/perl

$cfilename = shift(@ARGV) || die "Usage: translate_plugin.pl [cfile] [hfile] [profile]\n";
$hfilename = shift(@ARGV) || die "Usage: translate_plugin.pl [cfile] [hfile] [profile]\n";
$pfilename = shift(@ARGV) || die "Usage: translate_plugin.pl [cfile] [hfile] [profile]\n";

$ocfname = $cfilename; $ocfname =~ s/\.cpp/_tl.cpp/g;
$ohfname = $hfilename; $ohfname =~ s/\.h/_tl.h/g;
$opfname = $pfilename; $opfname =~ s/\.pro/_tl.pro/g;

print STDERR "Translating '$cfilename' to '$ocfname', '$hfilename' to '$ohfname', and '$pfilename' to '$opfname'\n";

open cfile,"<$cfilename";
open ocfile,">$ocfname";

while (<cfile>) {
	
	#s/$hfilename/$ohfname/g;
    
	# translate function definitions
	if (/[a-zA-Z0-9 ]*::OnDivide/) {
		s/ParentInfo &parent_info/ParentInfo *parent_info/g;
		s/CellBase &daughter1/CellBase *daughter1/g;
		s/CellBase &daughter2/CellBase *daughter2/g;
	}
	
	if (/[a-zA-Z0-9 ]*::SetCellColor/) {
		s/CellBase &c/CellBase *c/g;
		s/QColor &color/QColor *color/g;
	}
	
	if (/[a-zA-Z0-9 ]*::CellHouseKeeping/) {
		s/CellBase &c/CellBase *c/g;
	}
	
	# translate member function calls
	s/\bparent_info\b\./parent_info->/g;
	s/\bdaughter1\b\./daughter1->/g;
	s/\bdaughter2\b\./daughter2->/g;
	s/\bc\b\./c->/g;
	s/\bcolor\b\./color->/g;
	print ocfile;
	
}

open hfile,"<$hfilename";
open ohfile,">$ohfname";

while (<hfile>) {
	if (/[ \t]*virtual[ \t]+void[ \t]+CellHouseKeeping/) {
		s/CellBase &c/CellBase *c/g;
	}
	if (/[ \t]*virtual[ \t]+void[ \t]+OnDivide/) {
		s/ParentInfo &parent_info/ParentInfo *parent_info/g;
		s/CellBase &daughter1/CellBase *daughter1/g;
		s/CellBase &daughter2/CellBase *daughter2/g;
	}
	if (/[ \t]*virtual[ \t]+void[ \t]+SetCellColor/) {
		s/CellBase &c/CellBase *c/g;
		s/QColor &color/QColor *color/g;
	}
	
	
	print ohfile;
	
}

open pfile,"<$pfilename";
open opfile,">$opfname";

while (<pfile>) {
	
	s/\bplugin\b\.h/plugin_tl\.h/g;
	s/\bplugin\b\.cpp/plugin_tl\.cpp/g;
	
	print opfile;
	
}