Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
16 changes: 7 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
# MeVisLab Examples

This is the repository for the MeVisLab Examples GitHub pages.

Please follow [Examples Pages](https://mevislab.github.io/examples/)
# MeVisLab Tutorials and Examples

This is the repository for the [MeVisLab Tutorials and Examples GitHub pages](https://mevislab.github.io/examples/).

## Configuration

### Local Deployment
* Checkout code
* Checkout the code
* Install _extended_ hugo from the [Hugo Website](https://gohugo.io/)
* Install npm e.g. from [npmjs Website](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
* Change to mevislab.github.io folder and run `npm install`
* Stay in this folder and run `hugo server -d public --baseURL //localhost/examples/` (The `/examples/` path is locally not absolute necessary but it helps to find problems that might appear on the production website.)
* Open in your favorite browser the given URL
* Change to the *mevislab.github.io* folder and run `npm install`
* Stay in this folder and run `hugo server -d public --baseURL //localhost/examples/` (the `/examples/` path is not needed,
but it helps to find problems that might appear on the published website)
* Open the given URL in your favorite browser
2 changes: 1 addition & 1 deletion mevislab.github.io/content/about/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ Hints common mistakes or steps you should consider beforehand.
Keyboard shortcuts are incorporated like this: {{< keyboard "CTRL" "ALT" "2" >}}.

## Networks
The networks shown and used in the tutorials can be found in the [Examples](/examples) section of this page.
The networks shown and used in the tutorials can be found in the [Examples](examples) section of this page.
They are usually embedded like this:
{{< networkfile "examples/data_objects/contours/example1/ContourExample1.mlab" >}}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Additionally, the images are modified by a local macro module `Filter` and shown

In order to display the same slice (unchanged and changed), the module `SyncFloat` is used to synchronize the field value *startSlice* in both viewers. The `SyncFloat` module duplicates the value *Float1* to the field *Float2*.

![Screenshot](/examples/basic_mechanisms/contour_filter/image.png)
![Screenshot](examples/basic_mechanisms/contour_filter/image.png)

# Download
You can download the example network [here](/examples/basic_mechanisms/contour_filter/ContourFilter.zip)
You can download the example network [here](examples/basic_mechanisms/contour_filter/ContourFilter.zip)
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ In this example we update the *.script* file of the `Filter` module to display t
Changes applied to fields in the macro module's panel are applied to their internal network as well.
{{</alert>}}

![Screenshot](/examples/basic_mechanisms/macro_modules_and_module_interaction/example1/image.png)
![Screenshot](examples/basic_mechanisms/macro_modules_and_module_interaction/example1/image.png)

# Download
You can download the example network [here](/examples/basic_mechanisms/macro_modules_and_module_interaction/example1/FilterExample.zip)
You can download the example network [here](examples/basic_mechanisms/macro_modules_and_module_interaction/example1/FilterExample.zip)
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ A new macro module `IsoCSOs` is created providing two viewers in its internal ne

To showcase how Python functions can be implemented in MeVisLab and called from within a module, additional buttons to browse directories and create contours via the `CSOIsoGenerator` are added. Lastly, a field listener is implemented reacting to field changes by colorizing contours when the user hovers over them with the mouse.

![Screenshot](/examples/basic_mechanisms/macro_modules_and_module_interaction/example2/image2.png)
![Screenshot](examples/basic_mechanisms/macro_modules_and_module_interaction/example2/image2.png)

![Screenshot](/examples/basic_mechanisms/macro_modules_and_module_interaction/example2/image.png)
![Screenshot](examples/basic_mechanisms/macro_modules_and_module_interaction/example2/image.png)

# Download
The files need to be added to a package. You can download the example network [here](/examples/basic_mechanisms/macro_modules_and_module_interaction/example2/ScriptingExample2.zip)
The files need to be added to a package. You can download the example network [here](examples/basic_mechanisms/macro_modules_and_module_interaction/example2/ScriptingExample2.zip)
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ category: "basic_mechanisms"
# Example 3: Creating a Simple Application
In this example, you will learn how to create a simple prototype application in MeVisLab including a user interface (UI) with 2D and 3D viewers.

![Screenshot](/examples/basic_mechanisms/viewer_application/image.png)
![Screenshot](examples/basic_mechanisms/viewer_application/image.png)

# Download
You can download the example network [here](/examples/basic_mechanisms/viewer_application/viewerexample.mlab)
You can download the example network [here](examples/basic_mechanisms/viewer_application/viewerexample.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Contours are stored as Contour Segmentation Objects (CSOs) in MeVisLab.
This example highlights ways of creating CSOs using modules of the `SoCSOEditor` group.

{{<alert class="info" caption="Info">}}
You may want to look at the glossary entry on [*CSOs*](/glossary/#contour-segmented-objects).
You may want to look at the glossary entry on [*CSOs*](glossary/#contour-segmented-objects).
{{</alert>}}

The `SoCSOEditor` module group contains several modules, some of which are listed right below:
Expand All @@ -32,12 +32,12 @@ Whenever Contour Segmentation Objects are created, they are temporarily stored b

In this example, contours are created and colors and styles of these CSOs are customized by using the `SoCSOVisualizationSettings` module.

![Screenshot](/examples/data_objects/contours/example1/image.png)
![Screenshot](examples/data_objects/contours/example1/image.png)

## Summary
+ Contours are stored as their own abstract data type called Contour Segmentation Objects (often abbreviated to *CSO*).
+ The `SoCSO\*Editor` module group contains several useful modules to create, interact with or modify CSOs.
+ Created CSOs are temporarily stored and can be managed using the `CSOManager`.

# Download
The example network can be downloaded [here](/examples/data_objects/contours/example1/ContourExample1.mlab)
The example network can be downloaded [here](examples/data_objects/contours/example1/ContourExample1.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ In this example, semi-automatic countours are created using the `SoCSOLiveWireEd

Additional contours between the manually created ones are generated by the `CSOSliceInterpolator` and added to the `CSOManager`. Different groups of contours are created for the left and right lobe of the lung and colored respectively.

![Screenshot](/examples/data_objects/contours/example2/image.png)
![Screenshot](examples/data_objects/contours/example2/image.png)

# Download
You can download the example network [here](/examples/data_objects/contours/example2/ContourExample2.mlab)
You can download the example network [here](examples/data_objects/contours/example2/ContourExample2.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ The module `VoxelizeCSO` is used to create a three-dimensional voxel mask of the

Lastly, the panel of the `View3D` module is used to visualize the voxel mask in 3D.

![Screenshot](/examples/data_objects/contours/example3/image.png)
![Screenshot](examples/data_objects/contours/example3/image.png)

# Download
You can download the example network [here](/examples/data_objects/contours/example3/ContourExample3.mlab)
You can download the example network [here](examples/data_objects/contours/example3/ContourExample3.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ This example shows how to add annotations to an image.
## Summary
In this example, the network of **Contour Example 3** is extended so that the volume of the 3D mask generated by the `VoxelizeCSO` module is calculated. The `CalculateVolume` module counts the number of voxels in the given mask and returns the correct volume in ml. The calculated volume will be used for a custom `SoView2DAnnotation` displayed in the `View2D`.

![Screenshot](/examples/data_objects/contours/example4/image.png)
![Screenshot](examples/data_objects/contours/example4/image.png)

# Download
You can download the example network [here](/examples/data_objects/contours/example4/ContourExample4.mlab)
You can download the example network [here](examples/data_objects/contours/example4/ContourExample4.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Ghosting means not only showing contours available on the currently visible slic

The contours are also displayed in a three-dimensionsl `SoExaminerViewer` by using the `SoCSO3DRenderer`.

![Screenshot](/examples/data_objects/contours/example5/image.png)
![Screenshot](examples/data_objects/contours/example5/image.png)

# Download
You can download the example network [here](/examples/data_objects/contours/example5/ContourExample5.mlab)
You can download the example network [here](examples/data_objects/contours/example5/ContourExample5.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ category: "data_objects"

# Curves Example: Drawing Curves
This examples shows how to create and render curves.
![Screenshot](/examples/data_objects/curves/example1/image.png)
![Screenshot](examples/data_objects/curves/example1/image.png)

# Download
You can download the example network [here](/examples/data_objects/curves/example1/Curves.mlab)
You can download the example network [here](examples/data_objects/curves/example1/Curves.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ category: "data_objects"

# Marker Example 1: Distance Between Markers
This examples shows how to create markers in a viewer and measure their distance.
![Screenshot](/examples/data_objects/markers/example1/image.png)
![Screenshot](examples/data_objects/markers/example1/image.png)

# Download
You can download the example network [here](/examples/data_objects/markers/example1/Marker_Example1.mlab)
You can download the example network [here](examples/data_objects/markers/example1/Marker_Example1.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ category: "data_objects"

# Surface Example 1: Creation of WEMs
This example shows how to create WEMs out of voxel images and CSOs.
![Screenshot](/examples/data_objects/surface_objects/example1/image.png)
![Screenshot](examples/data_objects/surface_objects/example1/image.png)

# Download
You can download the example network [here](/examples/data_objects/surface_objects/example1/SurfaceExample1.mlab)
You can download the example network [here](examples/data_objects/surface_objects/example1/SurfaceExample1.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ category: "data_objects"

# Surface Example 2: Processing and Modification of WEMs
This example shows how to process and modify WEMs using the modules `WEMModify`, `WEMSmooth`, and `WEMSurfaceDistance`.
![Screenshot](/examples/data_objects/surface_objects/example2/DO7_03.png)
![Screenshot](examples/data_objects/surface_objects/example2/DO7_03.png)

# Download
You can download the example network [here](/examples/data_objects/surface_objects/example2/SurfaceExample2.mlab)
You can download the example network [here](examples/data_objects/surface_objects/example2/SurfaceExample2.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ category: "data_objects"
# Surface Example 3: Interactions with WEM
## Scale, Rotate, and Move a WEM in a Scene
In this example, we are using a `SoTransformerDragger` module to apply transformations on a 3D WEM object via mouse interactions.
![Screenshot](/examples/data_objects/surface_objects/example3/image.png)
![Screenshot](examples/data_objects/surface_objects/example3/image.png)

### Download
You can download the example network [here](/examples/data_objects/surface_objects/example3/SurfaceExample3.mlab)
You can download the example network [here](examples/data_objects/surface_objects/example3/SurfaceExample3.mlab)

## Interactively Modify WEMs
In this example, we are using a `SoWEMBulgeEditor` module to modify a WEM using the mouse.
![Screenshot](/examples/data_objects/surface_objects/example3/image2.png)
![Screenshot](examples/data_objects/surface_objects/example3/image2.png)

### Download
You can download the example network [here](/examples/data_objects/surface_objects/example3/WEMExample3b.mlab)
You can download the example network [here](examples/data_objects/surface_objects/example3/WEMExample3b.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ category: "data_objects"

# Surface Example 4: Interactively Moving WEM
This example shows how to use dragger modules to modify objects in a 3D viewer.
![Screenshot](/examples/data_objects/surface_objects/example4/image.png)
![Screenshot](examples/data_objects/surface_objects/example4/image.png)

# Download
You can download the example network [here](/examples/data_objects/surface_objects/example4/SurfaceExample4.zip)
You can download the example network [here](examples/data_objects/surface_objects/example4/SurfaceExample4.zip)
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ category: "data_objects"

# Surface Example 5: WEM - Primitive Value Lists
This example shows how to use Primitive Value Lists (PVLs). With the help of PVLs, the distance between the surfaces of WEMs is color-coded.
![Screenshot](/examples/data_objects/surface_objects/example5/image.png)
![Screenshot](examples/data_objects/surface_objects/example5/image.png)

# Download
You can download the example network [here](/examples/data_objects/surface_objects/example5/SurfaceExample5.mlab)
You can download the example network [here](examples/data_objects/surface_objects/example5/SurfaceExample5.mlab)
6 changes: 3 additions & 3 deletions mevislab.github.io/content/examples/howto.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,18 @@ Archives mostly contain macro modules. <br>
To use those macro modules, you will need to know how to handle user packages.

{{<alert class="check" caption="Check">}}
See [Example 2.1: Package creation](/tutorials/basicmechanisms/macromodules/package/) for more information on packages in MeVisLab.
See [Example 2.1: Package creation](tutorials/basicmechanisms/macromodules/package/) for more information on packages in MeVisLab.
{{</alert>}}

The contents can be extracted into the directory of your package. Make sure to keep the directory's structure for the examples to be loaded and displayed correctly.

The typical directory structure of a MeVisLab package looks like this:
![Package directory structure](/images/examples/howto_1.png "Package directory structure")
![Package directory structure](images/examples/howto_1.png "Package directory structure")

The package *TutorialSummary* within the package group *MeVis* is shown above. A package typically contains at least a *Projects* directory, which is where the macro modules are located. When extracting the contents of a *.zip* file, the *Projects* folder of your package should be the target directory.

Sometimes we even provide test cases. Extract them into the *TestCases* directory.
![Package directory structure](/images/examples/howto_2.png "Package directory structure")
![Package directory structure](images/examples/howto_2.png "Package directory structure")

{{<alert class="info" caption="Notice">}}
Feel free to create certain directories if they do not exist yet, but make sure to name them conforming the directory structure shown above.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ In this example, we apply scalar functions on two images like Add, Multiply, Sub
## Summary
We are loading two images by using the `LocalImage` module and show them in a `SynchroView2D`. In addition to that, both images are used for arithmetic processing in the module `Arithmetic2`.

![Screenshot](/examples/image_processing/example1/image.png)
![Screenshot](examples/image_processing/example1/image.png)

# Download
You can download the example network [here](/examples/image_processing/example1/BasicFilter.mlab)
You can download the example network [here](examples/image_processing/example1/BasicFilter.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ In this example, we create a simple mask on an image, so that background voxels
## Summary
We are loading images by using the `LocalImage` module and show them in a `SynchroView2D`. The same image is shown in the right viewer of the `SynchroView2D` but with a `Threshold` based `Mask`.

![Screenshot](/examples/image_processing/example2/image.png)
![Screenshot](examples/image_processing/example2/image.png)

# Download
You can download the example network [here](/examples/image_processing/example2/ImageMask.mlab)
You can download the example network [here](examples/image_processing/example2/ImageMask.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ In this example, we create a simple mask on an image by using the `RegionGrowing
## Summary
We are loading images by using the `LocalImage` module and show them in a `SynchroView2D`. The same image is used as input for the `RegionGrowing` module. The starting point for the algorithm is a list of markers created by the `SoView2DMarkerEditor`. As the `RegionGrowing` may leave gaps, an additional `CloseGap` module is added. The resulting segmentation mask is shown as an overlay on the original image via `SoView2DOverlay`.

![Screenshot](/examples/image_processing/example3/image.png)
![Screenshot](examples/image_processing/example3/image.png)

# Download
You can download the example network [here](/examples/image_processing/example3/RegionGrowingExample.mlab)
You can download the example network [here](examples/image_processing/example3/RegionGrowingExample.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ In this example, we subtract a sphere from another WEM.
## Summary
We are loading images by using the `LocalImage` module and render them as a 3D scene in a `SoExaminerViewer`. We also add a sphere that is then subtracted from the original image.

![Screenshot](/examples/image_processing/example4/image.png)
![Screenshot](examples/image_processing/example4/image.png)

# Download
You can download the example network [here](/examples/image_processing/example4/Subtract3DObjects.mlab)
You can download the example network [here](examples/image_processing/example4/Subtract3DObjects.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ In this example, we are using the currently visible slice from a 2D view as a cl
## Summary
We are loading images by using the `LocalImage` module and render them as a two-dimensional image stack `SoRenderArea`. The displayed slice is used to create a 3D plane/clip plane in a `SoExaminerViewer`.

![Screenshot](/examples/image_processing/example5/image.png)
![Screenshot](examples/image_processing/example5/image.png)

# Download
You can download the example network [here](/examples/image_processing/example4/ImageProcessingExample5.mlab)
You can download the example network [here](examples/image_processing/example4/ImageProcessingExample5.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Three 3D objects are created (`SoCone`, `SoSphere`, and `SoCube`) having a defin

In the end, all three objects including their materials and transformations are added to the `SoExaminerViewer` by a `SoGroup`.

![Screenshot](/examples/open_inventor/example1/image.png)
![Screenshot](examples/open_inventor/example1/image.png)

# Download
You can download the example network [here](/examples/open_inventor/example1/OpenInventorExample1.mlab)
You can download the example network [here](examples/open_inventor/example1/OpenInventorExample1.mlab)
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ This example shows how to implement object interactions.
## Summary
A `SoExaminerViewer` is used to render a `SoCube` object. The `SoMouseGrabber` is used to identify mouse interactions in the viewer and to resize the cube.

![Screenshot](/examples/open_inventor/example2/image.png)
![Screenshot](examples/open_inventor/example2/image.png)

# Download
You can download the example network [here](/examples/open_inventor/example2/OpenInventorExample2.mlab)
You can download the example network [here](examples/open_inventor/example2/OpenInventorExample2.mlab)


Loading
Loading