Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blender 2.72 (works so far) #8

Open
wants to merge 58 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
d232a3b
Bug Fixes: materials, meshes, and archive mode:
jeffmd May 17, 2011
cb4f3b4
Bug Fix: user does not have to select file when shader being added to…
jeffmd May 20, 2011
d4e2118
Bug Fix: Preview was not updating after pipeline sync executed:
jeffmd May 20, 2011
a48c48d
Bug Fix: Pipeline shader library relative path now works
jeffmd May 20, 2011
afabab6
Only allow loading of a pipeline if the current blend has a working d…
jeffmd May 21, 2011
15ca5fe
Code Refactor: Moved Pipeline Library relative path fix code into its…
jeffmd May 22, 2011
768d947
Beautify export of Blender 4x4 matrix to RIB format
jeffmd May 23, 2011
9602483
The material can now control the two sides attribute.
jeffmd May 24, 2011
9a28c2f
Bug Fix: Can now delete any render pass even if only one left:
jeffmd May 25, 2011
c29170f
Any blender Object can now be a camera in a render pass:
jeffmd May 25, 2011
49c0a3d
Code Refactor: building exporter object lists is now done through Exp…
jeffmd May 25, 2011
2fe29da
Aqsis automatically does midpoint depth filter when doing auto shadow…
jeffmd Jun 6, 2011
506f500
very basic mesh cache support set up:
jeffmd Jun 20, 2011
c163160
More work on export of meshes with multiple materials.
jeffmd Jun 22, 2011
ac23ba8
more work on getting mulitple material per mesh working.
jeffmd Jun 25, 2011
407dd43
Blender Material Preview now updates when a shader parameter is modif…
jeffmd Jul 4, 2011
140c5f9
Still more work on multiple materials per mesh:
jeffmd Jul 4, 2011
29a2068
Bug Fix: embedded shaders in pipeline generated runtime error
jeffmd Jul 10, 2011
fad64d3
New aqsis point cloud pipeline - initial commit:
jeffmd Jul 11, 2011
7d43f3a
Enhancements to aqsis point based render shaders and settings:
jeffmd Jul 14, 2011
952d88b
New Feature: Ribmosaic panels can now be associated with a pass or gr…
jeffmd Jul 14, 2011
7ea9ff7
Shadow maps can now be generated using the ZFile display in Aqsis:
jeffmd Jul 22, 2011
adbcb35
Multiple materials can now be applied to a mesh and exported properly…
jeffmd Jul 22, 2011
bd36b1d
Bug Fix in RIB formating: only reset indentation if new ReadArchive i…
jeffmd Jul 23, 2011
c6a4a6f
Bug Fix: Ribify of mesh normals and uv data was missing spaces betwee…
jeffmd Jul 23, 2011
ca8cebd
Bug Fix: SubMesh UV data was not properly exported to RIB
jeffmd Jul 23, 2011
f105ff3
use os.path.join() as suggested by Chris Foster (cf42) in aqsis/ribmo…
jeffmd Aug 7, 2011
75f4d5a
Turn off jitter when doing depth pass.
jeffmd Aug 7, 2011
b7e3216
Use os.path.join() to form a valid path.
jeffmd Aug 8, 2011
c1e3592
Bug Fix: exporter was exporting shaders that used to be pinned to a m…
jeffmd Aug 24, 2011
f3db8f2
Imager shaders can now be attached to Camera object and now get expor…
jeffmd Aug 25, 2011
95ca873
type error fix: bpy.types.Panel.bl_options is a set type not a string.
jeffmd Aug 30, 2011
5d07dd5
added Zfile display to Pixie core to allow generation of shadow maps.
jeffmd Aug 31, 2011
04160dc
added pixie_ptc.rmp pipeline to allow baking of point clouds and doin…
jeffmd Aug 31, 2011
f22caa4
Needed extra line feed so MakeShadow doesn't screw up rib formatting.
jeffmd Sep 16, 2011
f6f500c
Bug Fix: A previous pass render dimensions could effect the next pass…
jeffmd Sep 16, 2011
348056d
Bug Fix: Blender 2.62 has flipped the matrix indices so had to do the…
jeffmd Mar 24, 2012
6770734
The exporter no longer works correctly with Blender versions less tha…
jeffmd Mar 24, 2012
7eb3842
added renderman_core pipeline, corrected fundamental bug in camera ex…
May 20, 2015
b997f91
changed all .h shader files to UNIX line endings! (gives problems wit…
May 21, 2015
c5c1f7c
Merge remote-tracking branch 'fork_nfz/master'
May 22, 2015
a26f61d
Blender 2.72: Changes mesh.faces to mesh.polygons with certain loops…
May 22, 2015
8bcda4e
Changed load_post (typo probably -> was pre_render in if statement
May 22, 2015
2d537a1
Changed load_post (typo probably -> was pre_render in if statement
May 22, 2015
43dd1b7
improved alot:
May 27, 2015
92d113f
Merge branch 'master' of https://github.com/gabyx/RIBMosaic
May 28, 2015
d6307cd
added Renderman RIS Shaders under shader_library/renderman , (so far …
May 28, 2015
1da60d0
made deletion of properties better, everything like ribmosaic_* is re…
May 28, 2015
af87a90
latest
Jun 3, 2015
4e74145
added the LightRIS pipeline (so far, only PxrAreaLight and PxrEnvLigh…
Jun 3, 2015
855ea73
added a utility_library folder
Jun 3, 2015
bb72885
Fixed some spelling I just could not get over.
Jun 7, 2015
045e976
Added Glass shader
Jun 8, 2015
402a37b
Fixed Files
Jun 9, 2015
14faf45
Added PxrDiffuse and PxrSkin
Jun 10, 2015
c717ed8
Merge pull request #1 from MWY3510/master
gabyx Jun 10, 2015
16d3504
RIS Shaders Rendermand updates (StdAreaLight and StdEnvMap)
Feb 6, 2016
1620d57
undo stupid rib outputs (all vertices, all faces on one line due too …
Feb 6, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 20 additions & 10 deletions render_ribmosaic/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@
"name": "RIB Mosaic",
"author": "Eric Back (WHiTeRaBBiT)",
"version": (0, 1, 1),
"blender": (2, 5, 7),
"api": 36103,
"blender": (2, 7, 2),
"api": 44646,
"location": "Info Header (engine dropdown)",
"description": "RenderMan production environment for Blender",
"warning": "GIT Alpha",
Expand Down Expand Up @@ -113,10 +113,10 @@ def RibmosaicInfo(message, operator=None):
print(ENGINE + " Info: " + message)


import hashlib
def PropertyHash(name):
"""Converts long property names into a 30 character or less hash"""

return "P" + str(hash(name))[:30].replace("-", "N")
return "ribmosaic_P" + hashlib.md5(name.encode()).hexdigest()


def RibPath(path):
Expand All @@ -131,7 +131,6 @@ def RibPath(path):

from bl_ui import space_text


def register():
"""Register Blender classes and setup class properties"""

Expand Down Expand Up @@ -167,7 +166,12 @@ def register():
RibmosaicInfo("ribify module not found, using script level exporter")

bpy.utils.register_module(__name__)
bpy.ops.wm.ribmosaic_modal_sync()

# FIX ME: What should that do here (does not work with blender since the context is restricted access :
# http://wiki.blender.org/index.php/Extensions:2.6/Py/API_Changes
# ? We want that the pipeline to set up according to the .blend file (all shaders pinned to materials should be loaded as well, can we do this?)

#bpy.ops.wm.ribmosaic_pipeline_sync()


def unregister():
Expand All @@ -179,16 +183,22 @@ def unregister():
bpy.context.scene.render.engine = 'BLENDER_RENDER'

# Destroy our manager objects
pipeline_manager = None
export_manager = None
ribify = None
del pipeline_manager
del export_manager
del ribify

# Remove draw functions
space_text.TEXT_MT_toolbox.remove(rm_panel.ribmosaic_text_menu)

# Destroy our properties
rm_property.destroy_props()


# FIX ME: remove alll call backs registered with this addon, make some call back holder class for this addon which has an unregister /register function
# remove call back
if rm_operator.load_callback in bpy.app.handlers.load_post:
bpy.app.handlers.load_post.remove(rm_operator.load_callback)


bpy.utils.unregister_module(__name__)


Expand Down
21 changes: 20 additions & 1 deletion render_ribmosaic/pipelines/aqsis_core.rmp
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,30 @@ Display "+@[EVAL:.pass_output:]@" "exr" "float _z" "string layername" "RenderLay
<layout>
</layout>
</Multi_Display>
<ZFile_Display delete="False" description="" duplicate="False" enabled="False" filter="" register="True" type="DISPLAY" windows="RENDER">
<read target="">
</read>
<begin target="">
Display "+@[EVAL:.pass_output:]@" "zfile" "z"
Hider "hidden" "depthfilter" "midpoint"
Hider "hidden" "jitter" [ 0 ]

</begin>
<end target="">
MakeShadow "@[EVAL:.pass_output:]@" "@[EVAL:.pass_output:]@.tx"

</end>
<regexes target="">
</regexes>
<properties>
</properties>
<layout>
</layout>
</ZFile_Display>
<Options delete="False" description="Aqsis render Options" duplicate="False" enabled="True" filter="" register="True" type="OPTION" windows="RENDER">
<read target="">
</read>
<begin target="">
@[EVAL:"Hider \"hidden\" \"depthfilter\" [\"midpoint\"]" if @[DATA:///properties/multipass:]@ else "":]@
Option "shadow" "bias" [@[DATA:///properties/shadowbias:RIB]@]
Option "shadow" "bias0" [@[DATA:///properties/shadowbias0:RIB]@]
Option "shadow" "bias1" [@[DATA:///properties/shadowbias1:RIB]@]
Expand Down
200 changes: 200 additions & 0 deletions render_ribmosaic/pipelines/aqsis_ptc.rmp
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
<?xml version='1.0' encoding='UTF-8'?>
<aqsis_ptc build="True" compile="True" dependecies="aqsis_core" enabled="False" filepath="aqsis_ptc.rmp" filter="AQSIS_PTC" library="" version="0.1.1">
point cloud generation
<python_scripts>
</python_scripts>

<shader_sources>
<bake_ptc_light description="bake into point cloud" filepath="bake_ptc_light.sl">
light bake_ptc_light (
uniform string pointCloudFile = "";
uniform string __category = "bakelight";
) {
bake3d(pointCloudFile, "", Ps, normalize(Ns), "_area", area(Ps), "interpolate", 1);
Cl = 0.3;
L = 0;
}

</bake_ptc_light>
<occ_ptc_light description="use point cloud to generate ambient occlusion" filepath="occ_ptc_light.sl">
/** Provides ambient occlusion lighting from a point cloud file.
*
* The shader responds to two attributes, which may be set in a RIB file:
* Attribute "user" "float maxsolidangle" [ 0.05 ]
* If "bake" is set to [ 1 ] then no ambient light will be generated. The
* "maxsolidangle" parameter is a speed / quality tradeoff control for the
* light, which can be set on a per-surface basis.
*
* @param pointCloudFile name of the point cloud file
* @param intensity intensity of the light source
* @param lightcolor color of the light */
#ifndef PI
#define PI 3.14159265359
#endif
light occ_ptc_light (
uniform string pointCloudFile = "";
float intensity = 1;
color lightcolor = 1;
uniform float microbufres = 8;
) {
uniform float maxsolidangle = 0.04;
attribute("user:maxsolidangle", maxsolidangle);

/* compute ambient lighting if we're not baking */
float aocc = 0.3;
if (pointCloudFile != "") {
aocc = 1 - occlusion(Ps, Ns, 0, "filename", pointCloudFile,
"maxsolidangle", maxsolidangle,
"microbufres", microbufres,
"pointbased", 1);
}

Cl = intensity * aocc * lightcolor;
}

</occ_ptc_light>
</shader_sources>

<shader_panels filter="SHADER">
<bake_ptc_light delete="True" description="Authors:\nCopyright:\nDescription:\n" duplicate="True" enabled="False" filter="LIGHT, PTC_BAKE" library="@[SXML::RIB]@" register="True" slmeta="@[SXML::]@bake_ptc_light.slmeta" type="LIGHT" windows="LAMP">
<rib target="">
@[DATA:///properties/sl_type:]@ "@[SXML::RIB]@bake_ptc_light" @[EVAL:.current_lightid:]@
"uniform string pointCloudFile" @[DATA:///properties/pointCloudFile_prop0:RIB]@
"uniform string __category" @[DATA:///properties/__category_prop0:RIB]@

</rib>
<regexes target="">
</regexes>
<properties>
<sl_name default="bake_ptc_light" description="Shader's name" items="" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="STRING" />
<sl_type default="LightSource" description="Choose shader type" items="[('LightSource', 'LightSource', ''), ('AreaLightSource', 'AreaLightSource', '')]" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="ENUM" />
<pointCloudFile_prop0 default="" description="" items="" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="STRING" />
<__category_prop0 default="bakelight" description="" items="" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="STRING" />
</properties>
<layout>
<info_row active="True" align="True" box="False" enabled="True" percent="0.8" type="SPLIT" visible="True">
<sl_name expand="False" icon="" prop="sl_name" slider="False" text="Name" toggle="False" trigger="" type="PROP" />
<sl_type expand="False" icon="" prop="sl_type" slider="False" text="" toggle="False" trigger="" type="PROP" />
</info_row>
<pointCloudFile_row0 active="@[EVAL:not @[ATTR:///properties/pointCloudFile_prop0.link:STR]@:]@" align="False" box="False" enabled="True" percent="" type="ROW" visible="True">
<pointCloudFile_lb0 expand="False" icon="" prop="" slider="False" text="pointCloudFile" toggle="False" trigger="" type="LABEL" />
<prop_col active="True" align="False" box="False" enabled="True" percent="" type="COLUMN" visible="True">
<pointCloudFile_prop0 expand="False" icon="" prop="pointCloudFile_prop0" slider="False" text="" toggle="False" trigger="" type="PROP" />
</prop_col>
<pointCloudFile_op0 expand="False" icon="" prop="" slider="False" text="" toggle="False" trigger="@[PATH:///properties/pointCloudFile_prop0:]@" type="LINK" />
</pointCloudFile_row0>
<__category_row0 active="@[EVAL:not @[ATTR:///properties/__category_prop0.link:STR]@:]@" align="False" box="False" enabled="True" percent="" type="ROW" visible="True">
<__category_lb0 expand="False" icon="" prop="" slider="False" text="__category" toggle="False" trigger="" type="LABEL" />
<prop_col active="True" align="False" box="False" enabled="True" percent="" type="COLUMN" visible="True">
<__category_prop0 expand="False" icon="" prop="__category_prop0" slider="False" text="" toggle="False" trigger="" type="PROP" />
</prop_col>
<__category_op0 expand="False" icon="" prop="" slider="False" text="" toggle="False" trigger="@[PATH:///properties/__category_prop0:]@" type="LINK" />
</__category_row0>
</layout>
</bake_ptc_light>
<occ_ptc_light delete="True" description="Authors:\nCopyright:\nDescription:\n" duplicate="True" enabled="False" filter="LIGHT" library="@[SXML::RIB]@" register="True" slmeta="@[SXML::]@occ_ptc_light.slmeta" type="LIGHT" windows="LAMP">
<rib target="">
@[DATA:///properties/sl_type:]@ "@[SXML::RIB]@occ_ptc_light" @[EVAL:.current_lightid:]@
"uniform string pointCloudFile" @[DATA:///properties/pointCloudFile_prop0:RIB]@
"uniform float intensity" @[DATA:///properties/intensity_prop0:RIB]@
"uniform color lightcolor" @[DATA:///properties/lightcolor_prop0:RIB]@
"uniform float microbufres" @[DATA:///properties/microbufres_prop0:RIB]@

</rib>
<regexes target="">
</regexes>
<properties>
<sl_name default="occ_ptc_light" description="Shader's name" items="" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="STRING" />
<sl_type default="LightSource" description="Choose shader type" items="[('LightSource', 'LightSource', ''), ('AreaLightSource', 'AreaLightSource', '')]" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="ENUM" />
<pointCloudFile_prop0 default="" description="" items="" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="STRING" />
<intensity_prop0 default="1.0" description="" items="" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="FLOAT" />
<lightcolor_prop0 default="(1, 1, 1)" description="" items="" link="" max="1.0" maxlen="" min="0.0" precision="" size="" softmax="1.0" softmin="0.0" step="" type="COLOR" />
<microbufres_prop0 default="8.0" description="" items="" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="FLOAT" />
</properties>
<layout>
<info_row active="True" align="True" box="False" enabled="True" percent="0.8" type="SPLIT" visible="True">
<sl_name expand="False" icon="" prop="sl_name" slider="False" text="Name" toggle="False" trigger="" type="PROP" />
<sl_type expand="False" icon="" prop="sl_type" slider="False" text="" toggle="False" trigger="" type="PROP" />
</info_row>
<pointCloudFile_row0 active="@[EVAL:not @[ATTR:///properties/pointCloudFile_prop0.link:STR]@:]@" align="False" box="False" enabled="True" percent="" type="ROW" visible="True">
<pointCloudFile_lb0 expand="False" icon="" prop="" slider="False" text="pointCloudFile" toggle="False" trigger="" type="LABEL" />
<prop_col active="True" align="False" box="False" enabled="True" percent="" type="COLUMN" visible="True">
<pointCloudFile_prop0 expand="False" icon="" prop="pointCloudFile_prop0" slider="False" text="" toggle="False" trigger="" type="PROP" />
</prop_col>
<pointCloudFile_op0 expand="False" icon="" prop="" slider="False" text="" toggle="False" trigger="@[PATH:///properties/pointCloudFile_prop0:]@" type="LINK" />
</pointCloudFile_row0>
<intensity_row0 active="@[EVAL:not @[ATTR:///properties/intensity_prop0.link:STR]@:]@" align="False" box="False" enabled="True" percent="" type="ROW" visible="True">
<intensity_lb0 expand="False" icon="" prop="" slider="False" text="intensity" toggle="False" trigger="" type="LABEL" />
<prop_col active="True" align="False" box="False" enabled="True" percent="" type="COLUMN" visible="True">
<intensity_prop0 expand="False" icon="" prop="intensity_prop0" slider="False" text="" toggle="False" trigger="" type="PROP" />
</prop_col>
<intensity_op0 expand="False" icon="" prop="" slider="False" text="" toggle="False" trigger="@[PATH:///properties/intensity_prop0:]@" type="LINK" />
</intensity_row0>
<lightcolor_row0 active="@[EVAL:not @[ATTR:///properties/lightcolor_prop0.link:STR]@:]@" align="False" box="False" enabled="True" percent="" type="ROW" visible="True">
<lightcolor_lb0 expand="False" icon="" prop="" slider="False" text="lightcolor" toggle="False" trigger="" type="LABEL" />
<prop_col active="True" align="False" box="False" enabled="True" percent="" type="COLUMN" visible="True">
<lightcolor_prop0 expand="False" icon="" prop="lightcolor_prop0" slider="False" text="" toggle="False" trigger="" type="PROP" />
</prop_col>
<lightcolor_op0 expand="False" icon="" prop="" slider="False" text="" toggle="False" trigger="@[PATH:///properties/lightcolor_prop0:]@" type="LINK" />
</lightcolor_row0>
<microbufres_row0 active="@[EVAL:not @[ATTR:///properties/microbufres_prop0.link:STR]@:]@" align="False" box="False" enabled="True" percent="" type="ROW" visible="True">
<microbufres_lb0 expand="False" icon="" prop="" slider="False" text="microbufres" toggle="False" trigger="" type="LABEL" />
<prop_col active="True" align="False" box="False" enabled="True" percent="" type="COLUMN" visible="True">
<microbufres_prop0 expand="False" icon="" prop="microbufres_prop0" slider="False" text="" toggle="False" trigger="" type="PROP" />
</prop_col>
<microbufres_op0 expand="False" icon="" prop="" slider="False" text="" toggle="False" trigger="@[PATH:///properties/microbufres_prop0:]@" type="LINK" />
</microbufres_row0>
</layout>
</occ_ptc_light>
</shader_panels>

<utility_panels filter="UTILITY">
<PTC_Attributes delete="True" description="Aqsis PTC render Attributes" duplicate="True" enabled="False" filter="" register="True" type="PTC_OPTION" windows="WORLD">
<read target="">
</read>
<begin target="">
Attribute "cull" "int backfacing" [ @[EVAL:1 if @[DATA:///properties/cull_backfacing:]@ else 0:]@ ]
Attribute "cull" "int hidden" [ @[EVAL:1 if @[DATA:///properties/cull_hidden:]@ else 0:]@ ]
Attribute "dice" "int rasterorient" [ @[EVAL:1 if @[DATA:///properties/dice_rasterorient:]@ else 0:]@ ]

</begin>
<end target="">
</end>
<regexes target="">
</regexes>
<properties>
<cull_backfacing default="False" description="" items="" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="BOOL" />
<cull_hidden default="False" description="" items="" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="BOOL" />
<dice_rasterorient default="False" description="" items="" link="" max="" maxlen="" min="" precision="" size="" softmax="" softmin="" step="" type="BOOL" />
</properties>
<layout>
<column active="True" align="False" box="True" enabled="True" type="COLUMN" visible="True">
<attribute_label text="Point Cloud Attributes:" type="LABEL" />
<cull_backfacing expand="False" icon="" prop="cull_backfacing" slider="False" text="Cull Backfacing" toggle="False" trigger="" type="PROP" />
<cull_hidden expand="False" icon="" prop="cull_hidden" slider="False" text="Cull Hidden" toggle="False" trigger="" type="PROP" />
<dice_rasterorient expand="False" icon="" prop="dice_rasterorient" slider="False" text="Dice Rasterorient" toggle="False" trigger="" type="PROP" />
</column>
</layout>
</PTC_Attributes>
<PTC_Render_Ops delete="False" description="" duplicate="False" enabled="False" filter="" register="True" type="RENDER" windows="RENDER">
<read target="">
</read>
<begin target="">
Hider "hidden" "jitter" [ 0 ]

</begin>
<end target="">
</end>
<regexes target="">
</regexes>
<properties>
</properties>
<layout>
</layout>
</PTC_Render_Ops>

</utility_panels>

<command_panels filter="COMMAND">
</command_panels>
</aqsis_ptc>
20 changes: 20 additions & 0 deletions render_ribmosaic/pipelines/pixie_core.rmp
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,26 @@ Display "+@[EVAL:.pass_output:]@" "exr" "float _z" "string layername" "RenderLay
<layout>
</layout>
</Multi_Display>
<ZFile_Display delete="False" description="" duplicate="False" enabled="False" filter="" register="True" type="DISPLAY" windows="RENDER">
<read target="">
</read>
<begin target="">
Display "+@[EVAL:.pass_output:]@" "zfile" "z"
Hider "hidden" "depthfilter" "midpoint"
Hider "hidden" "jitter" [ 0 ]

</begin>
<end target="">
MakeShadow "@[EVAL:.pass_output:]@" "@[EVAL:.pass_output:]@.tx"

</end>
<regexes target="">
</regexes>
<properties>
</properties>
<layout>
</layout>
</ZFile_Display>
</utility_panels>

<command_panels filter="COMMAND">
Expand Down
Loading