Files @ 6bcb69712a0e
Branch filter:

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

Roeland Merks
In response to referee's comment:

"However, (although it is probably not important for model developers), I was
still unable to load the model ‘Meinhardt 1976 with growth’ example from the
‘Models’ drop down menu, I got the ‘Fatal error’ message ‘stepwise underflow in

rkqs, with h=0.000000 and htry = 0.100000’. The model did work when I selected
the Meinhardt model in both the Models and the File -> Read leaf menus together,
it would be preferable if the models loaded from the Models menu worked

automatically. I am not sure that the update referred to in the author’s
response permits the loading of ‘My First Model in Virtual Leaf’ from the
‘Models’ drop down menu; I only got a cell that wiggled."

I made the following changes:

- meinhardt_plugin now reads "meinhardt_init.xml" by default
- changed the name of 'My First Model in Virtual Leaf’ to '0: Empty model template (does nothing)' to make it clear that the wiggle cell is the intended behavior for this model example.
- Added default parameter files for Tutorial1A-D and Tutorial2 to prevent variable behavior depending on the last parameter settings used.


--
user: Roeland Merks <roeland.merks@cwi.nl>
branch 'default'
added data/leaves/tutorial1_init.xml
added data/leaves/tutorial2_init.xml
changed data/leaves/auxin_growth.xml
changed data/leaves/meinhardt_init.xml
changed src/TutorialCode/Tutorial0/tutorial0.cpp
changed src/TutorialCode/Tutorial1A/tutorial1A.h
changed src/TutorialCode/Tutorial1B/tutorial1B.h
changed src/TutorialCode/Tutorial1C/tutorial1C.h
changed src/TutorialCode/Tutorial1D/tutorial1D.h
changed src/TutorialCode/Tutorial2/tutorial2.h
changed src/build_models/meinhardtplugin.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;
    
}

#finis