Adding "Block IJK" process
Some notes about the sci20 design and how the SVPs (Scientific Visualization Processes) will be implemented in the library.
Organization
The sci20.app module is organized based first on data-types (grid-function, grid-part, mesh-assembly) and then on processes (block, coloring, selector).
That said, the new block-process is placed in sci20.app.mesh_assembly.block
Classes
For each process there is two main classes:
- The process class (
MeshAssemblyBlockProcess) - The editor class (
MeshAssemblyBlockEditor)
The process class
The process class encapsulates the sci20.core implementation (generator) providing a nice property interface for the external world.
All the dirty work is done in the OnProcess method, as usual. Special attention must be paid on the handling of grid-functions:
The grid-functions are required via "request", which is handled by the OnHandleRequest method. This method anotates which grid-function where required and the OnProcess must guarantee that these grid-functions are present in the generated output.
When the request is handled, he had to notify the cache system that the output changed, so further calls to GetOutput triggers the OnProcess.
We must not disable the caches for this process, as we've done in the source-process.
The editor class
We had to add the dimension attribute in the Integer xgui's entity in order to edit the initial and final IJK values.




Leave a comment