Can we merge a fMRI mask volume with a brain volume using vtk.js?

Thank you, I did what you told me (I guess) but the mask was not displayed, and if I delete the brain actor from the scene I don’t see the fMRI mask (I see it if I do only onz widget.setImage(fMRImask) in clear shiny white (alone without the brain of course)),

PS: I added the brainActor after adding the fMRI mask actor to solve that z-index issue you told me,

obj.renderer.addActor(obj.resliceActorfMRI);
obj.renderer.addActor(obj.resliceActor);

I shrinked some parts of code:

for (let i = 0; i < 3; i++) {
 const obj = {
    ... 
 };
  obj.widgetManager.setCaptureOn(CaptureOn.MOUSE_MOVE);
  // for brain VTI
  obj.reslice = vtkImageReslice.newInstance();
  obj.reslice.setSlabMode(SlabMode.MEAN);
  ...
  obj.reslice.setOutputDimensionality(2);

  obj.resliceMapper = vtkImageMapper.newInstance();
  obj.resliceMapper.setInputConnection(obj.reslice.getOutputPort());
  obj.resliceActor = vtkImageSlice.newInstance();
  obj.resliceActor.setMapper(obj.resliceMapper);
  // for fMRI mask VTI PS: it is not shrinked 
  obj.reslicefMRI = vtkImageReslice.newInstance();
  obj.resliceMapperfMRI = vtkImageMapper.newInstance();
  obj.resliceMapperfMRI .setInputConnection(obj.reslicefMRI .getOutputPort());
  obj.resliceActorfMRI = vtkImageSlice.newInstance();
  obj.resliceActorfMRI .setMapper(obj.resliceMapperfMRI );

const reader = vtkXMLImageDataReader.newInstance({ fetchGzip: true });
//Reading the brain volume
reader.setUrl("brainVolume.vti").then(() => {
  reader.loadData().then(() => {
   const imageBrain = reader.getOutputData();
    widget.setImage(imageBrain);
    const reader2 = vtkXMLImageDataReader.newInstance({ fetchGzip: true });
    //reading the VTI of the mask
    reader2.setUrl("fMRImask.vti").then(() => {
      reader2.loadData().then(() => {
      const imagefMRI = reader2.getOutputData();

      const outline = vtkOutlineFilter.newInstance();
      ...
      outlineActor.setMapper(outlineMapper);

      viewAttributes.forEach((obj, i) => {
        obj.reslice.setInputData(imageBrain);
        obj.reslicefMRI.setInputData(imagefMRI);

        obj.renderer.addActor(obj.resliceActorfMRI);
        obj.renderer.addActor(obj.resliceActor);

        const viewType = xyzToViewType[i];
        viewAttributes.forEach((v) => {
            v.widgetInstance.onInteractionEvent(
              (...) => {
                const activeViewType = ...;
                const keepFocalPointPosition = ...;
                updateReslice({
                  viewType: viewType,
                  reslice: obj.reslice,
                  actor: obj.resliceActor,
                  renderer: obj.renderer,
                  resetFocalPoint: false,
                  keepFocalPointPosition,
                  computeFocalPointOffset,
                  sphereSources: obj.sphereSources,
                });

                updateReslice({
                  viewType: viewType,
                  reslice: obj.reslicefMRI,
                  actor: obj.resliceActorfMRI,
                  renderer: obj.renderer,
                  resetFocalPoint: false,
                  keepFocalPointPosition,
                  computeFocalPointOffset,
                  sphereSources: obj.sphereSources,
                });
              }
            );
          });

        updateReslice({
          viewType,
          reslice,
          actor: obj.resliceActor,
          renderer: obj.renderer,
          resetFocalPoint: true, 
          keepFocalPointPosition: false,
          computeFocalPointOffset: true, 
          sphereSources: obj.sphereSources,
        });
        obj.renderWindow.render();
      });
...