|
61 | 61 | } |
62 | 62 | } |
63 | 63 | } |
64 | | -</code></pre></div></div><h5 id=module-inputs-and-outputs>Module Inputs and Outputs</h5><p>To create an input/output, you need to define a <em>Field</em> in the respective input/output section. Each input/output gets a name (here <field>input0</field>/<field>output0</field>) that you can use to reference this field. The module input maps to an input of the internal network. You need to define this mapping. In this case, the input of the macro module <code>Filter</code> maps to the input of the module <code>Convolution</code> of the internal network (<field>internalName</field> = <field>Convolution.input0</field>). Similarly, you need to define which output of the internal network maps to the output of the macro module <code>Filter</code>. In this example, the output of the internal module <code>Arithmethic2</code> maps to the output of our macro module <code>Filter</code> (<field>internalName</field> = <field>Arithmetic2.output0</field>).</p><p>Creating an input/output causes:</p><ol><li>Input/output connectors are added to the module.</li><li>You can find placeholders for the input and output in the internal network (see image).</li><li>Input/output fields are added to the automatic panel.</li><li>A description of the input/output fields is automatically added to the module help file, when opening the <em>.mhelp</em> file after input/output creation. Helpfile creation is explained in <a href=tutorials/basicmechanisms/macromodules/helpfiles/>Example 2.3</a>.</li></ol><p><p class=page-image><a data-modal=bs-lightbox href=images/tutorials/basicmechanics/BM_23.png title="Internal Network of your macro module"><img id="Internal Network of your macro module" class="img-fluid rounded" src=images/tutorials/basicmechanics/BM_23.png alt="Internal Network of your macro module" title="Internal Network of your macro module"></a><figcaption class=figure-caption>Internal Network of your macro module</figcaption></p></p><h5 id=module-fields>Module Fields</h5><p>In the <em>Parameters</em> section, you can define <em>fields</em> of your macro module. These fields may map to existing fields of the internal network (<field>internalName</field> = …), but they do not need to and can also be completely new. You can reference these fields when creating a panel, to allow interactions with these fields. All fields appear in the <em>Automatic Panel</em>.</p><h3 id=module-panel-layout>Module Panel Layout</h3><p>To create your own user interface, we need to create a |
| 64 | +</code></pre></div></div><h5 id=module-inputs-and-outputs>Module Inputs and Outputs</h5><p>To create an input/output, you need to define a <em>Field</em> in the respective input/output section. Each input/output gets a name (here <field>input0</field>/<field>output0</field>) that you can use to reference this field. The module input maps to an input of the internal network. You need to define this mapping. In this case, the input of the macro module <code>Filter</code> maps to the input of the module <code>Convolution</code> of the internal network (<inlinecode>internalName = Convolution.input0</inlinecode>). Similarly, you need to define which output of the internal network maps to the output of the macro module <code>Filter</code>. In this example, the output of the internal module <code>Arithmethic2</code> maps to the output of our macro module <code>Filter</code> (<inlinecode>internalName = Arithmetic2.output0</inlinecode>).</p><p>Creating an input/output causes:</p><ol><li>Input/output connectors are added to the module.</li><li>You can find placeholders for the input and output in the internal network (see image).</li><li>Input/output fields are added to the automatic panel.</li><li>A description of the input/output fields is automatically added to the module help file, when opening the <em>.mhelp</em> file after input/output creation. Helpfile creation is explained in <a href=tutorials/basicmechanisms/macromodules/helpfiles/>Example 2.3</a>.</li></ol><p><p class=page-image><a data-modal=bs-lightbox href=images/tutorials/basicmechanics/BM_23.png title="Internal Network of your macro module"><img id="Internal Network of your macro module" class="img-fluid rounded" src=images/tutorials/basicmechanics/BM_23.png alt="Internal Network of your macro module" title="Internal Network of your macro module"></a><figcaption class=figure-caption>Internal Network of your macro module</figcaption></p></p><h5 id=module-fields>Module Fields</h5><p>In the <em>Parameters</em> section, you can define <em>fields</em> of your macro module. These fields may map to existing fields of the internal network (<attribute>internalName</attribute> = …), but they do not need to and can also be completely new. You can reference these fields when creating a panel, to allow interactions with these fields. All fields appear in the <em>Automatic Panel</em>.</p><h3 id=module-panel-layout>Module Panel Layout</h3><p>To create your own user interface, we need to create a |
65 | 65 | <a href=https://mevislabdownloads.mevis.de/docs/current/MeVisLab/Resources/Documentation/Publish/SDK/MDLReference/index.html#mdl_Window target=_blank>Window</a> |
66 | 66 | . A window is one of the layout elements that exist in MDL. These layout elements are called |
67 | 67 | <a href=https://mevislabdownloads.mevis.de/docs/current/MeVisLab/Resources/Documentation/Publish/SDK/MDLReference/index.html#Controls target=_blank>controls</a> |
|
134 | 134 | a Table, a Grid, or a Button. To find out more, take a look into the |
135 | 135 | <a href=https://mevislabdownloads.mevis.de/docs/current/MeVisLab/Resources/Documentation/Publish/SDK/MDLReference/index.html#Controls target=_blank>MDL Reference</a> |
136 | 136 | .</p><h3 id=mdlInteractions>Module Interactions</h3><p>Until now, we learned how to create the layout of a panel. As a next step, we like to get an overview over interactions.</p><svg style="display:none"><symbol id="check-fill" fill="currentColor" viewBox="0 0 16 16"><path d="M16 8A8 8 0 110 8a8 8 0 0116 0zm-3.97-3.03a.75.75.0 00-1.08.022L7.477 9.417 5.384 7.323a.75.75.0 00-1.06 1.06L6.97 11.03a.75.75.0 001.079-.02l3.992-4.99a.75.75.0 00-.01-1.05z"/></symbol><symbol id="info-fill" fill="currentColor" viewBox="0 0 16 16"><path d="M8 16A8 8 0 108 0a8 8 0 000 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194.0.487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703.0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 110-2 1 1 0 010 2z"/></symbol><symbol id="warning-fill" fill="currentColor" viewBox="0 0 16 16"><path d="M8.982 1.566a1.13 1.13.0 00-1.96.0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889.0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535.0.954.462.9.995l-.35 3.507a.552.552.0 01-1.1.0L7.1 5.995A.905.905.0 018 5zm.002 6a1 1 0 110 2 1 1 0 010-2z"/></symbol><symbol id="danger-fill" fill="currentColor" viewBox="0 0 16 16"><path d="M8.982 1.566a1.13 1.13.0 00-1.96.0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889.0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535.0.954.462.9.995l-.35 3.507a.552.552.0 01-1.1.0L7.1 5.995A.905.905.0 018 5zm.002 6a1 1 0 110 2 1 1 0 010-2z"/></symbol></svg><div class="alert alert-primary alert-info d-flex align-items-center" role=alert><svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Extra Infos:"><use xlink:href="#info-fill"/></svg><div><b>Extra Infos: </b> |
137 | | -You can add the module <code>GUIExample</code> to your workspace and play around with is.</div></div><h4 id=access-to-existing-fields-of-the-internal-network>Access to Existing Fields of the Internal Network</h4><p>To interact with fields of the internal network in your user interface, we need to access these fields. To access the field of the internal module <code>Convolution</code>, which defines the <field>Kernel</field>, we need to use the internal network name. To find the internal field name, open the internal network of the macro module <code>Filter</code> (click on the module using the middle mouse button |
| 137 | +You can add the module <code>GUIExample</code> to your workspace and play around with is.</div></div><h4 id=access-to-existing-fields-of-the-internal-network>Access to Existing Fields of the Internal Network</h4><p>To interact with fields of the internal network in your user interface, we need to access these fields. To access the field of the internal module <code>Convolution</code>, which defines the <em>Kernel</em>, we need to use the internal network name. To find the internal field name, open the internal network of the macro module <code>Filter</code> (click on the module using the middle mouse button |
138 | 138 | <img width=22px src=images/mmb.svg alt="Middle Mouse Button / Mouse Wheel"> |
139 | 139 | ).</p><p>Then, open the panel of the module <code>Convolution</code> and right-click |
140 | 140 | <img width=22px src=images/rmb.svg alt="Right Mouse Button"> |
141 | | -the field title <field>Use</field> of the box <em>Predefined Kernel</em> and select <field>Copy Name</field>. You now copied the internal network name of the field to your clipboard. The name is made up of <em>ModuleName.FieldName</em>, in this case <field>Convolution.predefKernel</field>.</p><p><p class=page-image><a data-modal=bs-lightbox href=images/tutorials/basicmechanics/Convolution.png title="Convolution Module"><img id="Convolution Module" class="img-fluid rounded" src=images/tutorials/basicmechanics/Convolution.png alt="Convolution Module" title="Convolution Module"></a><figcaption class=figure-caption>Convolution Module</figcaption></p></p><p>In the panel of the module <code>Convolution</code>, you can change this variable <field>Kernel</field> via a drop-down menu. In MDL, a drop-down menu is called a |
| 141 | +the field title <em>Use</em> of the box <em>Predefined Kernel</em> and select <em>Copy Name</em>. You now copied the internal network name of the field to your clipboard. The name is made up of <em>ModuleName.FieldName</em>, in this case <field>Convolution.predefKernel</field>.</p><p><p class=page-image><a data-modal=bs-lightbox href=images/tutorials/basicmechanics/Convolution.png title="Convolution Module"><img id="Convolution Module" class="img-fluid rounded" src=images/tutorials/basicmechanics/Convolution.png alt="Convolution Module" title="Convolution Module"></a><figcaption class=figure-caption>Convolution Module</figcaption></p></p><p>In the panel of the module <code>Convolution</code>, you can change this variable <em>Kernel</em> via a drop-down menu. In MDL, a drop-down menu is called a |
142 | 142 | <a href=https://mevislabdownloads.mevis.de/docs/current/MeVisLab/Resources/Documentation/Publish/SDK/MDLReference/index.html#mdl_ComboBox target=_blank>ComboBox</a> |
143 | 143 | . We can take over the field <field>predefKernel</field>, its drop-down menu and all its properties by creating a new field in our panel and reference to the internal field <field>Convolution.predefKernel</field>, which already exist in the internal network.</p><p>Changes of the properties of this field can be done in the curled brackets using tags (here, we changed the title).</p><div class=card style=margin-bottom:2rem><div class="card-header d-flex justify-content-between"><p class="card-title m-0">Filter.script</p></div><div class=card-body><pre tabindex=0><code class=language-Stan data-lang=Stan>Window MyWindowName { |
144 | 144 | title = MyWindowTitle |
|
0 commit comments