comparison neper_visualization.xml @ 0:82edf8dea5db draft

"planemo upload for repository https://github.com/ximg-chess/galaxytools/tools/neper commit fd705c5d17e50a45fb6833d269aa23387391687a"
author ximgchess
date Sat, 13 Nov 2021 00:14:53 +0000
parents
children a5e15abf30b5
comparison
equal deleted inserted replaced
-1:000000000000 0:82edf8dea5db
1 <tool id="neper_visualization" name="Neper Visualization" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" python_template_version="3.5">
2 <description></description>
3 <macros>
4 <import>macros.xml</import>
5 <import>color_macros.xml</import>
6 <token name="@VERSION_SUFFIX@">0</token>
7
8 <!-- Mesh Keys
9 id#identifier#node, @var{n}D elt, @var{n}D elset
10 x#x coordinate#node, @var{n}D elt, @var{n}D elset
11 y#y coordinate#node, @var{n}D elt, @var{n}D elset
12 z#z coordinate#node, @var{n}D elt, @var{n}D elset
13 coo#x, y and z coordinates#node, @var{n}D elt, @var{n}D elset
14 dim#dimension (= lowest parent elt dimension)#node
15 elset0d#0D elset#0D elt
16 elset1d#1D elset#1D elt
17 elset2d#2D elset#2D elt
18 elset3d#3D elset#3D elt
19 part#partition#@var{n}D elt, node
20 group#group#@var{n}D elt, @var{n}D elset
21 cyl#whether or not is used to describe the circular part of a cylinder domain#1D elt, 1D elset
22 vol#volume#3D elt, 3D elset
23 area#surface area#2D elt
24 diameq#equivalent diameter@footnote{Equivalent diameter = diameter of the circle of equivalent area/volume in 2D/3D.#2D elt, 3D elt, 2D elset, 3D elset
25 radeq#equivalent radius@footnote{Equivalent radius = radius of the circle of equivalent area/volume in 2D/3D.}#2D elt, 3D elt, 2D elset, 3D elset
26 length#average edge length#@math{n}D elt, 1D elset
27 lengths#edge lengths#2D elt, 3D elt
28 elsetvol#elset volume#3D elt
29 elsetarea#elset area#2D elt
30 elsetlength#elset length#1D elt
31 rr#radius ratio#3D elt
32 rrav}, @code{rrmin}, @code{rrmax}
33 #average, min and max radius ratios @tab 3D elset
34 Osize#Osize#3D elset
35 eltnb#number of elements#@var{n}D elset
36 true#true level#@var{n}D elt, @var{n}D elset
37 body#body level#@var{n}D elt, @var{n}D elset
38 domtype#type of domain (0 if on a domain vertex, 1 if on a domain edge and 2 if on a domain face)#@w{2D elset}, @w{1D elset}, @w{0D elset}, @w{2D elt}, @w{1D elt}, @w{0D elt}
39 2dmeshp#coordinates of the closest point of the 2D mesh#node, 3D elt
40 2dmeshd#distance to @samp{2dmeshp}#node, 3D elt
41 2dmeshv#vector to @samp{2dmeshp}#node, 3D elt
42 2dmeshn#outgoing normal vector of the 2D mesh at @samp{2dmeshp#node, 3D elt
43 per#periodic (1 if periodic, 0 otherwise)#0D elt, 1D elt, 2D elt (in 3D), 0D elset, 1D elset, 2D elset (in 3D)
44 col_rodrigues#color according to the Rodrigues vector color convention@footnote{Applies to a mesh of Rodrigues space.}#node
45 col_stdtriangle#color according to the stereographic triangle (IPF) color convention@footnote{Applies to a mesh of the stereographic triangle.}#node
46 -->
47
48 <xml name="set_elt" token_name="option">
49 <conditional name="@NAME@">
50 <param name="set_@NAME@" type="select" label="Set @NAME@">
51 <option value="default">use default</option>
52 <option value="by_value">by value </option>
53 <option value="from_file">from file</option>
54 </param>
55 <when value="default"/>
56 <when value="by_value">
57 <param name="@NAME@" argument="-@NAME@" type="text" label="@NAME@">
58 <option value="all">all</option>
59 <option value="none">none</option>
60 <yield/>
61 </param>
62 </when>
63 <when value="from_file">
64 <param name="elements_file" argument="-@NAME@" type="data" format="txt" label="Elements file"/>
65 </when>
66 </conditional>
67 </xml>
68
69 <xml name="elt_elset">
70 <param name="by_set" type="boolean" truevalue="elset" falsevalue="elt" checked="false" label="apply to element set"/>
71 </xml>
72 <xml name="set_el_color" token_name="option">
73 <conditional name="@NAME@">
74 <param name="set_@NAME@" type="select" label="Set @NAME@ by">
75 <option value="default" selected="true">Use default</option>
76 <option value="data_value">data value</option>
77 <option value="color">color</option>
78 <option value="from_file">from file</option>
79 </param>
80 <when value="default"/>
81 <when value="data_value">
82 <param argument="-@NAME@" type="text" label="Set @NAME@ by element or element set">
83 <yield/>
84 </param>
85 <expand macro="elt_elset"/>
86 </when>
87 <when value="color">
88 <expand macro="color_selector" argument="-@NAME@" label="Set @NAME@ color"/>
89 <expand macro="elt_elset"/>
90 </when>
91 <when value="from_file">
92 <param name="color_file" argument="-@NAME@" type="data" format="txt" label="Color file"/>
93 </when>
94 </conditional>
95 </xml>
96
97 <xml name="tess_data">
98 <section name="tess" expanded="false" title="Tessellation Rendering">
99 <conditional name="datacellcol">
100 <param name="set_datacellcol" argument="-datacellcol" type="select" label="Set datacell color">
101 <option value="none">None</option>
102 <option value="id" selected="true">id</option>
103 <option value="mode">mode</option>
104 <option value="by_value">By value</option>
105 </param>
106 <when value="none"/>
107 <when value="id"/>
108 <when value="mode"/>
109 <when value="by_value">
110 <expand macro="color_selector" name="datacellcolor" label="Select datacell color"/>
111 </when>
112 <when value="by_value">
113 </when>
114 </conditional>
115 </section>
116 </xml>
117 <token name="@TESS_DATA@">
118 #if $tess.datacellcol.set_datacellcol in ['id','mode']
119 -datacellcol $tess.datacellcol.set_datacellcol
120 #elif $tess.datacellcol.set_datacellcol == 'by_value'
121 -datacellcol $tess.datacellcol.datacellcolor
122 #end if
123 </token>
124
125 <!--
126 neper -V example_mesh.msh -showelt1d all -dataelset3dcol id -dataelt1drad 0.0025 -dataelt3dedgerad 0.0025
127 -->
128
129 <xml name="mesh_data">
130 <section name="mesh_data" expanded="false" title="Mesh Data Loading">
131 <!-- NOTE: elt or elset -->
132 <!-- datanodecoo -->
133 <!-- datanodecoofact -->
134 <!-- datanoderad -->
135 <!-- datanodecol -->
136 <!-- datanodecolscheme -->
137 <!-- datanodescale -->
138 <!-- datanodescaletitle -->
139 </section>
140 </xml>
141 <token name="@MESH_DATA@">
142 </token>
143
144 <xml name="mesh_color">
145 <section name="mesh_color" expanded="false" title="Mesh Data Rendering">
146 <!-- NOTE: elt or elset -->
147 <!-- dataelt3dcol -->
148 <expand macro="set_el_color" name="dataelt3dcol">
149 </expand>
150 <!-- dataelt3dcolscheme -->
151 <!-- dataelt3dcolscale -->
152 <!-- dataelt3dcolscaletitle -->
153 <!-- dataelt3dedgerad -->
154 <param argument="-dataelt3dedgerad" type="float" value="" min="0.0" optional="true" label="data element 3d edge radius"/>
155 <!-- dataelt3dedgecol -->
156
157 <!-- dataelt2dcol -->
158 <expand macro="set_el_color" name="dataelt2dcol">
159 <!-- dataelt2dcolscheme -->
160 <!-- dataelt2dcolscale -->
161 <!-- dataelt2dcolscaletitle -->
162 <!-- dataelt2dedgerad -->
163 <param argument="-dataelt2dedgerad" type="float" value="" min="0.0" optional="true" label="data element 2d edge radius"/>
164 <!-- dataelt2dedgecol -->
165
166 <!-- dataelt1dcol -->
167 <expand macro="set_el_color" name="dataelt1dcol">
168 <!-- dataelt1dcolscheme -->
169 <!-- dataelt1dcolscale -->
170 <!-- dataelt1dcolscaletitle -->
171 <!-- dataelt1drad -->
172 <param argument="-dataelt1drad" type="float" value="" min="0.0" optional="true" label="data element 1d radius"/>
173
174 <!-- dataelt0dcol -->
175 <expand macro="set_el_color" name="dataelt0dcol">
176 <!-- dataelt0dcolscheme -->
177 <!-- dataelt0dcolscale -->
178 <!-- dataelt0dcolscaletitle -->
179 <!-- dataelt0drad -->
180 <param argument="-dataelt0drad" type="float" value="" min="0.0" optional="true" label="data element 1d radius"/>
181 </section>
182 </xml>
183 <token name="@MESH_COLOR@">
184 #if $mesh_color.dataelt3dcol.set_dataelt3dcol == 'from_file'
185 #pass
186 #elif $mesh_color.dataelt3dcol.set_dataelt3dcol != 'default'
187 #set opt = '-dataelt3dcol'.replace('elt',str($mesh_color.dataelt3dcol.by_set))
188 $opt '$mesh_color.dataelt3dcol.dataelt3dcol'
189 #end if
190 #if $mesh_color.dataelt2dcol.set_dataelt2dcol == 'from_file'
191 #pass
192 #elif $mesh_color.dataelt2dcol.set_dataelt2dcol != 'default'
193 #set opt = '-dataelt2dcol'.replace('elt',str($mesh_color.dataelt2dcol.by_set))
194 $opt '$mesh_color.dataelt2dcol.dataelt2dcol'
195 #end if
196 #if $mesh_color.dataelt1dcol.set_dataelt1dcol == 'from_file'
197 #pass
198 #elif $mesh_color.dataelt1dcol.set_dataelt1dcol != 'default'
199 #set opt = '-dataelt1dcol'.replace('elt',str($mesh_color.dataelt1dcol.by_set))
200 $opt '$mesh_color.dataelt1dcol.dataelt1dcol'
201 #end if
202 #if $mesh_color.dataelt0dcol.set_dataelt0dcol == 'from_file'
203 #pass
204 #elif $mesh_color.dataelt0dcol.set_dataelt0dcol != 'default'
205 #set opt = '-dataelt0dcol'.replace('elt',str($mesh_color.dataelt0dcol.by_set))
206 $opt '$mesh_color.dataelt0dcol.dataelt3dcol'
207 #end if
208
209 #if $mesh_color.dataelt3dedgerad
210 -dataelt3dedgerad $mesh_color.dataelt3dedgerad
211 #end if
212 #if $mesh_color.dataelt2dedgerad
213 -dataelt2dedgerad $mesh_color.dataelt2dedgerad
214 #end if
215 #if $mesh_color.dataelt1drad
216 -dataelt1drad $mesh_color.dataelt1drad
217 #end if
218 #if $mesh_color.dataelt0drad
219 -dataelt0drad $mesh_color.dataelt0drad
220 #end if
221 </token>
222
223 <xml name="show_settings">
224 <section name="show" expanded="false" title="Show Settings">
225 <expand macro="optional_yn" arg="-showtess" label="Show tess" help="test"/>
226 <expand macro="optional_yn" arg="-showtesr" label="Show tesr" help="test"/>
227 <expand macro="optional_yn" arg="-showmesh" label="Show mesh" help="test"/>
228 <expand macro="optional_yn" arg="-showmeshslice" label="Show mesh slice" help="test"/>
229 <!-- showpoint -->
230 </section>
231 </xml>
232 <token name="@SHOW_SETTINGS@">
233 #if $show.showtess
234 -showtess $show.showtess
235 #end if
236 #if $show.showtesr
237 -showtesr $show.showtesr
238 #end if
239 #if $show.showmesh
240 -showmesh $show.showmesh
241 #end if
242 #if $show.showmeshslice
243 -showmeshslice $show.showmeshslice
244 #end if
245 ## -showpoint
246 </token>
247
248 <xml name="show_tess_settings">
249 <section name="show_tess" expanded="false" title="Show Tessellation Settings">
250 <!-- showcell -->
251 <!-- showpoly -->
252 <!-- showface -->
253 <!-- showedge -->
254 <!-- showver -->
255 <!-- showseed -->
256 <!-- showfaceinter -->
257 <expand macro="optional_yn" arg="-showfaceinter" label="Show the interpolations of the tessellation faces" help=""/>
258 <!-- RASTER tesr -->
259 <!-- showvoidvox -->
260 </section>
261 </xml>
262 <token name="@SHOW_TESS_SETTINGS@">
263 #if $show_tess.showfaceinter
264 -showfaceinter $show_tess.showfaceinter
265 #end if
266 </token>
267
268 <xml name="show_mesh_settings">
269 <section name="show_mesh" expanded="false" title="Show Mesh Settings">
270 <expand macro="set_elt" name="showelt3d"/>
271 <expand macro="set_elt" name="showelt2d">
272 <option value="elt3d_shown">elt3d_shown</option>
273 </expand>
274 <expand macro="set_elt" name="showelt1d">
275 <option value="elt2d_shown">elt2d_shown</option>
276 <option value="elt3d_shown">elt3d_shown</option>
277 </expand>
278 <expand macro="set_elt" name="showelt0d">
279 <option value="elt1d_shown">elt1d_shown</option>
280 <option value="elt2d_shown">elt2d_shown</option>
281 <option value="elt3d_shown">elt3d_shown</option>
282 </expand>
283 <!-- shownode -->
284 <expand macro="optional_yn" arg="-showcys" label="Show the coordinate system" help=""/>
285 <expand macro="optional_yn" arg="-showshadow" label="Show the shadows" help=""/>
286 </section>
287 </xml>
288 <token name="@SHOW_MESH_SETTINGS@">
289 #if $show_mesh.showelt3d.set_showelt3d == 'by_value'
290 -showelt3d '$show_mesh.showelt3d.showelt3d'
291 #elif $show_mesh.showelt3d.set_showelt3d == 'from_file'
292 -showelt3d 'file($show_mesh.showelt3d.elements_file)'
293 #end if
294 #if $show_mesh.showelt2d.set_showelt2d == 'by_value'
295 -showelt2d '$show_mesh.showelt2d.showelt2d'
296 #elif $show_mesh.showelt2d.set_showelt2d == 'from_file'
297 -showelt2d 'file($show_mesh.showelt2d.elements_file)'
298 #end if
299 #if $show_mesh.showelt1d.set_showelt1d == 'by_value'
300 -showelt1d '$show_mesh.showelt1d.showelt1d'
301 #elif $show_mesh.showelt1d.set_showelt1d == 'from_file'
302 -showelt1d 'file($show_mesh.showelt1d.elements_file)'
303 #end if
304 #if $show_mesh.showelt0d.set_showelt0d == 'by_value'
305 -showelt0d '$show_mesh.showelt0d.showelt0d'
306 #elif $show_mesh.showelt0d.set_showelt0d == 'from_file'
307 -showelt0d 'file($show_mesh.showelt0d.elements_file)'
308 #end if
309 ## shownode
310 #if $show_mesh.showcys
311 -showcys $show_mesh.showcys
312 #end if
313 #if $show_mesh.showshadow
314 -showshadow $show_mesh.showshadow
315 #end if
316 </token>
317
318 <xml name="camera_settings">
319 <section name="camera" expanded="false" title="Camera Settings">
320 <expand macro="set_nv" name="cameracoo" label="Specify the camera coordinates">
321 <expand macro="tx3d" label="Camera position" lx="x" ly="y" lz="z"/>
322 </expand>
323 <expand macro="set_nv" name="cameralookat" label="Specify the camera look-at point">
324 <expand macro="tx3d" label="Camera lookat" lx="x" ly="y" lz="z"/>
325 </expand>
326 <param name="cameraangle" type="float" value="" min="1" max="179" optional="true" label="Set the opening angle of the camera along the horizontal direction (in degrees)"/>
327 <expand macro="set_nv" name="camerasky" label="Specify the sky vector of the camera (vertical direction)">
328 <expand macro="tx3d" label="Camera Sky vector" lx="x" ly="y" lz="z" x="0" y="0" z="1"/>
329 </expand>
330 <param name="cameraprojection" type="select" optional="true" label="Camera Projection">
331 <help>Default value: perspective for 3D and orthographic for 2D</help>
332 <option value="perspective">perspective</option>
333 <option value="orthographic">orthographic</option>
334 </param>
335 </section>
336 </xml>
337 <token name="@CAMERA_SETTINGS@">
338 #if $camera.cameracoo.set_cameracoo == 'by_value'
339 -cameracoo "${camera.cameracoo.x}:${camera.cameracoo.y}:${camera.cameracoo.z}"
340 #end if
341 #if $camera.cameralookat.set_cameralookat == 'by_value'
342 -cameralookat "${camera.cameralookat.x}:${camera.cameralookat.y}:${camera.cameralookat.z}"
343 #end if
344 #if $camera.cameraangle
345 -cameraangle $camera.cameraangle
346 #end if
347 #if $camera.camerasky.set_camerasky == 'by_value'
348 -camerasky "${camera.camerasky.x}:${camera.camerasky.y}:${camera.camerasky.z}"
349 #end if
350 #if $camera.cameraprojection
351 -cameraprojection $camera.cameraprojection
352 #end if
353 </token>
354
355 <xml name="image_settings">
356 <section name="image" expanded="false" title="Image Settings">
357 <expand macro="set_ny" name="imagesize" label="Set the image size">
358 <expand macro="size2d" label="Image size" lx="width" ly="height"/>
359 </expand>
360 <expand macro="color_selector" name="imagebackground" label="Image background color"/>
361 <param name="imageantialias" type="boolean" truevalue="" falsevalue="-imageantialias 0" checked="true" label="Use antialiasing"
362 help="Use antialiasing to produce a smoother image. Switch antialiasing off for faster image gener- ation or smaller image file"/>
363 </section>
364 </xml>
365 <token name="@IMAGE_SETTINGS@">
366 #if $image.imagesize.set_imagesize == 'yes'
367 -imagesize "${image.imagesize.x}:${image.imagesize.y}"
368 #end if
369 #if $image.imagebackground
370 -imagebackground "$image.imagebackground"
371 #end if
372 $image.imageantialias
373 </token>
374
375 </macros>
376 <expand macro="requirements" />
377 <expand macro="version_command" />
378 <command detect_errors="exit_code"><![CDATA[
379 #*
380 #set $tessfiles = []
381 #set $mshfiles = []
382 #for $input in $inputs
383 #if $input.is_of_type('neper.msh')
384 #silent $mshfiles.append(str($input))
385 #else
386 #silent $tessfiles.append(str($input))
387 #end if
388 #end for
389 #set $ds = ','.join($tessfiles + $mshfiles)
390 neper -V
391 '$ds'
392 *#
393 neper -V
394 '$inputs'
395 @TESS_DATA@
396 @TRANSFORM@
397 @MESH_COLOR@
398 @SHOW_SETTINGS@
399 @SHOW_TESS_SETTINGS@
400 @SHOW_MESH_SETTINGS@
401 @CAMERA_SETTINGS@
402 @IMAGE_SETTINGS@
403 -imageformat "$imageformat"
404 -print output
405 | grep -v '%$' | tee 'neper.log'
406 #if 'png' in $imageformat
407 && test -s output.png
408 #end if
409 #if 'vtk' in $imageformat
410 && test -s output.vtk
411 #end if
412 ]]></command>
413 <inputs>
414 <param name="inputs" type="data" format="neper.tesr,neper.tess,gmsh.msh" multiple="true" label="Input to visualize"/>
415 <expand macro="tess_data"/>
416 <expand macro="transform"/>
417 <expand macro="mesh_color"/>
418 <expand macro="show_settings"/>
419 <expand macro="show_tess_settings"/>
420 <expand macro="show_mesh_settings"/>
421 <expand macro="camera_settings"/>
422 <expand macro="image_settings"/>
423 <param name="imageformat" argument="-imageformat" type="select" multiple="true" optional="false" label="Image formats">
424 <option value="png" selected="true">PNG</option>
425 <option value="vtk">VTK</option>
426 <option value="pov">POV</option>
427 </param>
428 </inputs>
429 <outputs>
430 <data name="log" format="txt" label="${tool.name} on ${on_string} log" from_work_dir="neper.log"/>
431 <data name="output_png" format="png" label="${tool.name} on ${on_string} png" from_work_dir="output.png">
432 <filter>'png' in imageformat</filter>
433 </data>
434 <data name="output_vtk" format="vtkascii" label="${tool.name} on ${on_string} vtk" from_work_dir="output.vtk">
435 <filter>'vtk' in imageformat</filter>
436 </data>
437 <data name="output_pov" format="pov" label="${tool.name} on ${on_string} pov" from_work_dir="output.pov">
438 <filter>'pov' in imageformat</filter>
439 </data>
440 </outputs>
441 <tests>
442 <!-- Test-1 neper -V neper.tess -datacellcol id -imageformat "png" -->
443 <test>
444 <param name="inputs" ftype="neper.tess" value="neper.tess"/>
445 <output name="log">
446 <assert_contents>
447 <has_text text="Wrote file `output.png'." />
448 </assert_contents>
449 </output>
450 </test>
451 <!-- Test-2 neper -V gmsh.msh -datacellcol id -imageformat "png,vtk" -->
452 <test>
453 <param name="inputs" ftype="neper.tess" value="gmsh.msh"/>
454 <param name="imageformat" value="png,vtk"/>
455 <output name="log">
456 <assert_contents>
457 <has_text text="Wrote file `output.png'." />
458 <has_text text="Wrote file `output.vtk'." />
459 </assert_contents>
460 </output>
461 <output name="output_vtk">
462 <assert_contents>
463 <has_text text="vtk DataFile" />
464 <has_text text="DATASET UNSTRUCTURED_GRID" />
465 </assert_contents>
466 </output>
467 </test>
468
469 </tests>
470 <help><![CDATA[
471 **Neper Visualization**
472
473 @NEPER_HELP@
474
475 Module -V is the module for visualizing tessellations, meshes and simulation results as publication-quality PNG images1 or as VTK files, for interactive visualization. Results can be defined from internal data, data loaded from external files or a simulation directory as generated by module -S. For the PNG images, it is possible to set different attributes of the tessellations and meshes such as the node coordinates, or the colors and transparencies of the different entities. Point data can also be represented, using symbols of specified sizes and colors. Slice views can also be generated.
476
477 ]]></help>
478 <expand macro="citations" />
479 </tool>