Partial Preset Loading Capabilities.
Testing Instructions:
1. delete preset in presets folder
2. change settings to something different
3. press new preset button
4. type in a name (without spaces or unusual
characters if you want to make sure it
will work!)
5. notice new entry on list.
6. close sketchup and reopen
7. notice your settings have been restored from preset.
Known issues:
- many!
- only the above scenario will be likely to work.
Todo:
- I'm workin on it!
1.1 --- a/su2lux/LuxrenderAttributeDictionaries.rb Fri Apr 30 23:57:06 2010 +1000
1.2 +++ b/su2lux/LuxrenderAttributeDictionaries.rb Sat May 01 17:41:14 2010 +1000
1.3 @@ -236,6 +236,48 @@
1.4 def include?(key)
1.5 return @objdic.include?(key)
1.6 end
1.7 - def export_dic
1.8 + def export_dic_str
1.9 + file_str = ""
1.10 + arr1 = []
1.11 + arr2 = []
1.12 + @strdic.each_key do |key|
1.13 + val = @sustrdic[key]
1.14 + if not AttributeDic.is_path?(val.to_s)
1.15 + arr1.push "#{key}=#{val}\n"
1.16 + else
1.17 + arr2.push "#{key}=#{val}\n"
1.18 + end
1.19 + end
1.20 +
1.21 + arr1.each {|line| file_str += line}
1.22 + file_str += "\n\n"
1.23 + arr2.each {|line| file_str += line}
1.24 + puts file_str
1.25 + return file_str
1.26 end
1.27 + def import_dic_str(file_str)
1.28 + self.clear
1.29 + file_str.each_line do |line|
1.30 + pair = line.split("=")
1.31 + id = pair[0]
1.32 + val = pair[1]
1.33 + @sustrdic[id] = val
1.34 + end
1.35 + end
1.36 + def import_dic_line(line)
1.37 + line.chomp!
1.38 + self.clear
1.39 + pair = line.split("=")
1.40 + id = pair[0]
1.41 + val = pair[1]
1.42 + @sustrdic[id] = val
1.43 + end
1.44 + def clear
1.45 + end
1.46 + def each_sustr
1.47 + @strdic.each_key do |key|
1.48 + yield @sustrdic[key]
1.49 + end
1.50 + end
1.51 +
1.52 end
1.53 \ No newline at end of file
2.1 --- a/su2lux/LuxrenderPrimatives.rb Fri Apr 30 23:57:06 2010 +1000
2.2 +++ b/su2lux/LuxrenderPrimatives.rb Sat May 01 17:41:14 2010 +1000
2.3 @@ -43,7 +43,7 @@
2.4 puts "activated"
2.5 end
2.6 def deactivate(view)
2.7 - view.invalidate if @drawn
2.8 + view.invalidate #if @drawn
2.9 model = Sketchup.active_model
2.10 model.abort_operation if @doing_operation
2.11 puts "deactivated"
3.1 --- a/su2lux/LuxrenderSettingsEditor.rb Fri Apr 30 23:57:06 2010 +1000
3.2 +++ b/su2lux/LuxrenderSettingsEditor.rb Sat May 01 17:41:14 2010 +1000
3.3 @@ -24,11 +24,6 @@
3.4 @lrsd = AttributeDic.spawn($lrsd_name)
3.5 @lrad = AttributeDic.spawn($lrad_name)
3.6
3.7 - #preset = Attribute.new("preset")
3.8 - #@lrad.add_root("preset", preset)
3.9 - #self.init_presets()
3.10 - @presets=[]
3.11 -
3.12 self.create_html_dialog
3.13
3.14 pref_key="LuxrenderSettingsEditor"
3.15 @@ -126,6 +121,7 @@
3.16
3.17 #set parameters in inputs of settings.html
3.18 def updateAllSettings()
3.19 + self.init_presets() #load presets from files
3.20 @lrsd.each_obj do |obj|
3.21 if obj.respond_to?("html_update_cmds")
3.22 updateSettingValue(obj)
3.23 @@ -335,63 +331,67 @@
3.24 end
3.25
3.26 def find_presets()
3.27 + ret_arr = []
3.28 + preset_dir = SU2LUX.plugin_dir + "su2lux/presets"
3.29 + Dir.foreach(preset_dir) {|f| ret_arr.push(f) if f != "." and f != ".."}
3.30 + return ret_arr
3.31 end
3.32
3.33 def new_preset(name)
3.34 puts "preset_name:" + name.to_s
3.35 - @presets.push(name)
3.36 + pres = Preset.new(name)
3.37 + pres.save
3.38 +
3.39 + @presets[name] = pres
3.40 end
3.41
3.42 -
3.43 def init_presets()
3.44 - preset = @lrad["preset"]
3.45 + #preset = Attribute.new("preset")
3.46 + #@lrad.add_root("preset", preset)
3.47 + #preset = @lrad["preset"]
3.48 +
3.49 preset_names = find_presets()
3.50 - @presets = []
3.51 + @presets = {}
3.52 for name in preset_names
3.53 - @presets.push(Preset.new(name))
3.54 + puts "found: " + name
3.55 + name = name.gsub("preset_", "")
3.56 + @settings_dialog.execute_script("set_preset_selector('#{name}')")
3.57 + puts "PRESET NAME: " + name
3.58 + pres = Preset.new(name)
3.59 + pres.load
3.60 + @presets[name] = pres
3.61 end
3.62 - if not preset_names.empty?
3.63 - if preset.value == ""
3.64 - preset.value = preset_names[0]
3.65 - end
3.66 - end
3.67 + #@presets["another_preset"].load
3.68 + # if not preset_names.empty?
3.69 + #if preset.value == ""
3.70 + #preset.value = preset_names[0]
3.71 + #end
3.72 + #end
3.73 end
3.74
3.75 end #end class LuxrenderSettingsEditor
3.76
3.77 class Preset
3.78 def initialize(name)
3.79 - @file_name = SU2LUX.plugin_dir + "su2lux/preset_" + name.to_s
3.80 - in_it = false
3.81 - for pres_name in find_presets()
3.82 - if pres_name == name
3.83 - in_it = true
3.84 - end
3.85 - end
3.86 - if in_it == true
3.87 - self.load
3.88 - end
3.89 + @file_name = SU2LUX.plugin_dir + "su2lux/presets/preset_" + name.to_s
3.90 + @lrsd = AttributeDic.spawn($lrsd_name)
3.91 end
3.92 def save
3.93 File.open(@file_name, "w") do |file|
3.94 - file.puts "#this is a presets file of --settings--\n\n"
3.95 - @lrsd.strdic.each_key do |key|
3.96 - val = @lrsd.sustrdic[key]
3.97 - if not AttributeDic.is_path?(val.to_s)
3.98 - file.puts "#{key} = #{val}"
3.99 - end
3.100 + file.puts "#this is a presets file of --settings--\n\n"
3.101 + file.puts @lrsd.export_dic_str
3.102 end
3.103 - file.puts "\n\n"
3.104 - @lrsd.strdic.each_key do |key|
3.105 - val = @lrsd.sustrdic[key]
3.106 - if AttributeDic.is_path?(val.to_s)
3.107 - file.puts "#{key} = #{val}"
3.108 + puts "SAVED!"
3.109 + end
3.110 + def load
3.111 + File.open(@file_name, "r") do |file|
3.112 + puts "IMPORTING"
3.113 + file.each_line do |line|
3.114 + if line.chomp != "" and not line.include?('#')
3.115 + puts line.chomp
3.116 + @lrsd.import_dic_line(line)
3.117 + end
3.118 end
3.119 end
3.120 end
3.121 - @settings_dialog.execute_script("alert('preset saved');")
3.122 end
3.123 -def load
3.124 -
3.125 -end
3.126 -end
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
4.2 +++ b/su2lux/presets/preset_new_preset Sat May 01 17:41:14 2010 +1000
4.3 @@ -0,0 +1,43 @@
4.4 +#this is a presets file of --settings--
4.5 +
4.6 +accelerator->accelerator_type->tabreckdtree->maxprims=1
4.7 +film->haltspp=0
4.8 +camera->autofocus=false
4.9 +surfaceintegrator->integrator_type->path->maxdepth=16
4.10 +surfaceintegrator->integrator_type->bidirectional->eyedepth=8
4.11 +accelerator->accelerator_type->grid->refineimmediately=false
4.12 +accelerator->accelerator_type->tabreckdtree->traversalcost=1
4.13 +camera->yon=100.0
4.14 +camera->hither=0.1
4.15 +surfaceintegrator->integrator_type->path->includeenvironment=true
4.16 +pixelsamplerselection=vegas
4.17 +surfaceintegrator->integrator_type->directlighting->maxdepth=5.0
4.18 +surfaceintegrator->integrator_type->bidirectional->lightdepth=8
4.19 +camera->near_far_clipping=true
4.20 +camera->camera_type->orthographic->scale=7.31
4.21 +camera->camera_type->perspective->fov=35.0
4.22 +film->yresolution=330
4.23 +sampler->sampler_type->lowdiscrepancy->pixelsamples=4
4.24 +accelerator->accelerator_type->qbvh->maxprimsperleaf=4
4.25 +accelerator->accelerator_type->tabreckdtree->maxdepth=-1
4.26 +accelerator->accelerator_type->tabreckdtree->intersectcost=80
4.27 +camera->architectural=false
4.28 +camera->dof_bokeh=false
4.29 +film->halttime=0
4.30 +film->displayinterval=4
4.31 +sampler->sampler_type->random->pixelsamples=4
4.32 +camera->motion_blur=false
4.33 +film->xresolution=510
4.34 +accelerator->accelerator_type->tabreckdtree->emptybonus=0.5
4.35 +sampler->sampler_type->erpt->chainlength=100000
4.36 +
4.37 +
4.38 +film->film_type=film->film_type->fleximage
4.39 +accelerator->accelerator_type=accelerator->accelerator_type->tabreckdtree
4.40 +sampler->sampler_type->lowdiscrepancy->pixelsampler=sampler->sampler_type->lowdiscrepancy->pixelsampler->pixelsamplerselection
4.41 +sampler->sampler_type->random->pixelsampler=sampler->sampler_type->random->pixelsampler->pixelsamplerselection
4.42 +surfaceintegrator->integrator_type=surfaceintegrator->integrator_type->bidirectional
4.43 +camera->camera_type=camera->camera_type->perspective
4.44 +sampler->sampler_type->random->pixelsampler->pixelsamplerselection=sampler->sampler_type->random->pixelsampler->pixelsamplerselection->linear
4.45 +sampler->sampler_type->lowdiscrepancy->pixelsampler->pixelsamplerselection=sampler->sampler_type->lowdiscrepancy->pixelsampler->pixelsamplerselection->linear
4.46 +sampler->sampler_type=sampler->sampler_type->lowdiscrepancy
5.1 --- a/su2lux/su2lux_test.js Fri Apr 30 23:57:06 2010 +1000
5.2 +++ b/su2lux/su2lux_test.js Sat May 01 17:41:14 2010 +1000
5.3 @@ -52,10 +52,9 @@
5.4 function new_preset()
5.5 {
5.6 preset_name = prompt("Preset Name:", "new_preset");
5.7 - alert("preset_name: " + preset_name);
5.8 $("#preset_select").append("<option value=" + preset_name + ">" + preset_name + "</option>");
5.9 report_id("new_preset", preset_name);
5.10 - report_id("select_preset", preset_name);
5.11 + report_id("select_preset", preset_name);//wish this could return value to sketchup instead of call here
5.12 }
5.13
5.14 function remove_preset()