Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-23 Thread Utkarsh Ayachit
Interesting, I wonder how that could have worked with older version of
ParaView then. Did that piece of code change recently?

Utkarsh

On Sun, May 22, 2011 at 2:43 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Just to announce - the problem is solved! It seems the problem was in
 plugin's sources when setting texture coordinates data. So, if in
 vtkMyExporter.cpp I remove

 tex_coord_data-SetNumberOfComponents(1);

 or set number of components to 2, correct texture will be generated!

 Thanks everyone on Your help!

 Best regards,
 Nenad.

 On Fri, May 13, 2011 at 11:49 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Does anyone have idea where could be the problem in uploaded sources?

 Thanks,
 Nenad.

 On Tue, May 10, 2011 at 12:13 PM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 Thank You very much, but unfortunately, adding manually copying of
 parameters didn't solve all problems. I updated test plug-in with
 manually copying, converting scalars to texture, applying texture to
 actor and showing resulting actor in vtkRenderWindow. You can find
 updated sources at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 If You load again disk_out_ref.ex2, select H2 and try to export to
 .my, You'll see in separate vtkRenderWindow same object with applied
 generated
 texture which looks very bad. Again, it works fine in v3.8.1. I
 believe I'm not initializing new actors properly? Do You have some
 idea how to fix it?

 Thanks,
 Nenad.


 On Mon, May 9, 2011 at 10:02 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 The problem is pretty straight forward. Looks like
 vtkMapper::ShallowCopy(..) does not copy the state of
 InterpolateScalarsBeforeMapping. I will commit a fix for that for next
 release. Until then, you'll have to manually copy ivars that you care
 about.

 Utkarsh

 On Sun, May 8, 2011 at 10:25 AM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 I uploaded test plugin that shows my problem at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 After I build and load the plugin from Qt client, I load
 disk_out_ref.ex2, select H2 for mapping scalars, check Interpolate
 Scalars on Display tab in Object inspector and go on File-Export
 (select .my file). I get 6 message boxes which report 0, 0, 0, 0, 0, 1
 (instead of 0, 0, 0, 0, 1, 1) as values for
 vtkMapper::InterpolateScalarsBeforeMapping. So, here is first
 question: How to create multiple vtkActor objects from
 vtkCompositePolyDataMapper2's input? I thought that vtkMyExporter.cpp
 Ln 138-162 should be fine, but uploaded sources shows different.

 Thanks,
 Nenad.

 On Fri, May 6, 2011 at 2:29 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 Nenad,

 There;s nothing much different about the vtkCompositePolyDataMapper or
 vtkPolyDataMapper as far as the state of the
 InterpolateScalarsBeforeMapping flag goes. I cannot see how that
 variable can return false if it is indeed set to true as you are
 saying. Can you share the plugin?

 Utkarsh

 On Thu, May 5, 2011 at 6:03 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Perhaps I was a bit unclear in my previous messages. Here are more
 details about the problem and test case.

 I use ParaView v3.10.1 release sources, Visual Studio 2008 SP1, Python
 2.7, OpenMPI 1.4.3 on Vista SP2. I compiled sources with standard
 options (just turned on BUILD_SHARED_LIBS, MPI and Python). I derived
 new class from vtkExporter, vtkMyExporter, and in
 vtkMyExporter::WriteData() I call code specified down. The problem is
 in QMessage line, which reports always 0, even when this flag is
 turned on. Same is happening with most of other parameters.

 I believe that learning how to decompose composite ptrActor into
 several actors with vtkPolyDataMapper mapper and vtkPolyData data will
 solve all other problems (which occur when generating texture from
 scalars). At the moment, I'm interested only in actors which use
 vtkCompositePolyDataMapper2 mappers. As input I use disk_out_ref.ex2
 with selected H2 (or any other channel) for mapping colors. Does
 anyone have any idea how this can be done? Btw, this worked perfectly
 under ParaView v.3.8.1 and with RenderWindow created using VTK 5.4.2
 (where I create vtkCompositePolyDataMapper2 and populate it manually).

 Thank You very much for Your help!

 Best regards,
 Nenad.

 

 1) Get interactive renderer 'InteractiveRenderer' from
 vtkMyExporter::RenderWindow
 2) For every actor 'ptrActor' (3D actors only) in InteractiveRenderer 
 do:

    vtkCompositeDataIterator* actor_iterator;
    vtkCompositePolyDataMapper2* composite_mapper = NULL;

    // get actor's mapper
    vtkMapper* mapper = ptrActor-GetMapper();
    if(mapper == NULL)
        return true; // discard

    // get mapper's input
    vtkCompositeDataSet* composite_input_data =
 dynamic_castvtkCompositeDataSet*(mapper-GetInputDataObject(0, 0));
    if(composite_input_data != NULL)
    {
        // get 

Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-23 Thread Nenad Vujicic
Dear Utkarsh,

Yes, it works perfectly with ParaView v3.8.* release sources. The
reason is in vtkScalarsToColorsPainter class which produces 256x1
texture in ParaView v3.8.*, while in ParaView 3.10.* (and current SVN
sources) it produces 256x2 texture. In v3.10.* case, in first row
(bottom-up) are texels with colors copied from lookup table, while in
second row (or first in top-down view) all texels are (64, 0, 0) -
dark red.

Best regards,
Nenad.

On Mon, May 23, 2011 at 3:02 PM, Utkarsh Ayachit
utkarsh.ayac...@kitware.com wrote:
 Interesting, I wonder how that could have worked with older version of
 ParaView then. Did that piece of code change recently?

 Utkarsh

 On Sun, May 22, 2011 at 2:43 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Just to announce - the problem is solved! It seems the problem was in
 plugin's sources when setting texture coordinates data. So, if in
 vtkMyExporter.cpp I remove

 tex_coord_data-SetNumberOfComponents(1);

 or set number of components to 2, correct texture will be generated!

 Thanks everyone on Your help!

 Best regards,
 Nenad.

 On Fri, May 13, 2011 at 11:49 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Does anyone have idea where could be the problem in uploaded sources?

 Thanks,
 Nenad.

 On Tue, May 10, 2011 at 12:13 PM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 Thank You very much, but unfortunately, adding manually copying of
 parameters didn't solve all problems. I updated test plug-in with
 manually copying, converting scalars to texture, applying texture to
 actor and showing resulting actor in vtkRenderWindow. You can find
 updated sources at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 If You load again disk_out_ref.ex2, select H2 and try to export to
 .my, You'll see in separate vtkRenderWindow same object with applied
 generated
 texture which looks very bad. Again, it works fine in v3.8.1. I
 believe I'm not initializing new actors properly? Do You have some
 idea how to fix it?

 Thanks,
 Nenad.


 On Mon, May 9, 2011 at 10:02 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 The problem is pretty straight forward. Looks like
 vtkMapper::ShallowCopy(..) does not copy the state of
 InterpolateScalarsBeforeMapping. I will commit a fix for that for next
 release. Until then, you'll have to manually copy ivars that you care
 about.

 Utkarsh

 On Sun, May 8, 2011 at 10:25 AM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 I uploaded test plugin that shows my problem at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 After I build and load the plugin from Qt client, I load
 disk_out_ref.ex2, select H2 for mapping scalars, check Interpolate
 Scalars on Display tab in Object inspector and go on File-Export
 (select .my file). I get 6 message boxes which report 0, 0, 0, 0, 0, 1
 (instead of 0, 0, 0, 0, 1, 1) as values for
 vtkMapper::InterpolateScalarsBeforeMapping. So, here is first
 question: How to create multiple vtkActor objects from
 vtkCompositePolyDataMapper2's input? I thought that vtkMyExporter.cpp
 Ln 138-162 should be fine, but uploaded sources shows different.

 Thanks,
 Nenad.

 On Fri, May 6, 2011 at 2:29 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 Nenad,

 There;s nothing much different about the vtkCompositePolyDataMapper or
 vtkPolyDataMapper as far as the state of the
 InterpolateScalarsBeforeMapping flag goes. I cannot see how that
 variable can return false if it is indeed set to true as you are
 saying. Can you share the plugin?

 Utkarsh

 On Thu, May 5, 2011 at 6:03 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Perhaps I was a bit unclear in my previous messages. Here are more
 details about the problem and test case.

 I use ParaView v3.10.1 release sources, Visual Studio 2008 SP1, Python
 2.7, OpenMPI 1.4.3 on Vista SP2. I compiled sources with standard
 options (just turned on BUILD_SHARED_LIBS, MPI and Python). I derived
 new class from vtkExporter, vtkMyExporter, and in
 vtkMyExporter::WriteData() I call code specified down. The problem is
 in QMessage line, which reports always 0, even when this flag is
 turned on. Same is happening with most of other parameters.

 I believe that learning how to decompose composite ptrActor into
 several actors with vtkPolyDataMapper mapper and vtkPolyData data will
 solve all other problems (which occur when generating texture from
 scalars). At the moment, I'm interested only in actors which use
 vtkCompositePolyDataMapper2 mappers. As input I use disk_out_ref.ex2
 with selected H2 (or any other channel) for mapping colors. Does
 anyone have any idea how this can be done? Btw, this worked perfectly
 under ParaView v.3.8.1 and with RenderWindow created using VTK 5.4.2
 (where I create vtkCompositePolyDataMapper2 and populate it manually).

 Thank You very much for Your help!

 Best regards,
 Nenad.

 

 1) Get interactive renderer 'InteractiveRenderer' from
 

Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-23 Thread Utkarsh Ayachit
Ah interesting. I wasn't aware of that change. Thanks.

Utkarsh

On Mon, May 23, 2011 at 1:26 PM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 Yes, it works perfectly with ParaView v3.8.* release sources. The
 reason is in vtkScalarsToColorsPainter class which produces 256x1
 texture in ParaView v3.8.*, while in ParaView 3.10.* (and current SVN
 sources) it produces 256x2 texture. In v3.10.* case, in first row
 (bottom-up) are texels with colors copied from lookup table, while in
 second row (or first in top-down view) all texels are (64, 0, 0) -
 dark red.

 Best regards,
 Nenad.

 On Mon, May 23, 2011 at 3:02 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 Interesting, I wonder how that could have worked with older version of
 ParaView then. Did that piece of code change recently?

 Utkarsh

 On Sun, May 22, 2011 at 2:43 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Just to announce - the problem is solved! It seems the problem was in
 plugin's sources when setting texture coordinates data. So, if in
 vtkMyExporter.cpp I remove

 tex_coord_data-SetNumberOfComponents(1);

 or set number of components to 2, correct texture will be generated!

 Thanks everyone on Your help!

 Best regards,
 Nenad.

 On Fri, May 13, 2011 at 11:49 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Does anyone have idea where could be the problem in uploaded sources?

 Thanks,
 Nenad.

 On Tue, May 10, 2011 at 12:13 PM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 Thank You very much, but unfortunately, adding manually copying of
 parameters didn't solve all problems. I updated test plug-in with
 manually copying, converting scalars to texture, applying texture to
 actor and showing resulting actor in vtkRenderWindow. You can find
 updated sources at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 If You load again disk_out_ref.ex2, select H2 and try to export to
 .my, You'll see in separate vtkRenderWindow same object with applied
 generated
 texture which looks very bad. Again, it works fine in v3.8.1. I
 believe I'm not initializing new actors properly? Do You have some
 idea how to fix it?

 Thanks,
 Nenad.


 On Mon, May 9, 2011 at 10:02 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 The problem is pretty straight forward. Looks like
 vtkMapper::ShallowCopy(..) does not copy the state of
 InterpolateScalarsBeforeMapping. I will commit a fix for that for next
 release. Until then, you'll have to manually copy ivars that you care
 about.

 Utkarsh

 On Sun, May 8, 2011 at 10:25 AM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 I uploaded test plugin that shows my problem at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 After I build and load the plugin from Qt client, I load
 disk_out_ref.ex2, select H2 for mapping scalars, check Interpolate
 Scalars on Display tab in Object inspector and go on File-Export
 (select .my file). I get 6 message boxes which report 0, 0, 0, 0, 0, 1
 (instead of 0, 0, 0, 0, 1, 1) as values for
 vtkMapper::InterpolateScalarsBeforeMapping. So, here is first
 question: How to create multiple vtkActor objects from
 vtkCompositePolyDataMapper2's input? I thought that vtkMyExporter.cpp
 Ln 138-162 should be fine, but uploaded sources shows different.

 Thanks,
 Nenad.

 On Fri, May 6, 2011 at 2:29 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 Nenad,

 There;s nothing much different about the vtkCompositePolyDataMapper or
 vtkPolyDataMapper as far as the state of the
 InterpolateScalarsBeforeMapping flag goes. I cannot see how that
 variable can return false if it is indeed set to true as you are
 saying. Can you share the plugin?

 Utkarsh

 On Thu, May 5, 2011 at 6:03 PM, Nenad Vujicic nena...@gmail.com 
 wrote:
 Hello everyone,

 Perhaps I was a bit unclear in my previous messages. Here are more
 details about the problem and test case.

 I use ParaView v3.10.1 release sources, Visual Studio 2008 SP1, Python
 2.7, OpenMPI 1.4.3 on Vista SP2. I compiled sources with standard
 options (just turned on BUILD_SHARED_LIBS, MPI and Python). I derived
 new class from vtkExporter, vtkMyExporter, and in
 vtkMyExporter::WriteData() I call code specified down. The problem is
 in QMessage line, which reports always 0, even when this flag is
 turned on. Same is happening with most of other parameters.

 I believe that learning how to decompose composite ptrActor into
 several actors with vtkPolyDataMapper mapper and vtkPolyData data will
 solve all other problems (which occur when generating texture from
 scalars). At the moment, I'm interested only in actors which use
 vtkCompositePolyDataMapper2 mappers. As input I use disk_out_ref.ex2
 with selected H2 (or any other channel) for mapping colors. Does
 anyone have any idea how this can be done? Btw, this worked perfectly
 under ParaView v.3.8.1 and with RenderWindow created using VTK 5.4.2
 (where I create vtkCompositePolyDataMapper2 and populate it 

Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-22 Thread Nenad Vujicic
Hello everyone,

Just to announce - the problem is solved! It seems the problem was in
plugin's sources when setting texture coordinates data. So, if in
vtkMyExporter.cpp I remove

tex_coord_data-SetNumberOfComponents(1);

or set number of components to 2, correct texture will be generated!

Thanks everyone on Your help!

Best regards,
Nenad.

On Fri, May 13, 2011 at 11:49 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Does anyone have idea where could be the problem in uploaded sources?

 Thanks,
 Nenad.

 On Tue, May 10, 2011 at 12:13 PM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 Thank You very much, but unfortunately, adding manually copying of
 parameters didn't solve all problems. I updated test plug-in with
 manually copying, converting scalars to texture, applying texture to
 actor and showing resulting actor in vtkRenderWindow. You can find
 updated sources at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 If You load again disk_out_ref.ex2, select H2 and try to export to
 .my, You'll see in separate vtkRenderWindow same object with applied
 generated
 texture which looks very bad. Again, it works fine in v3.8.1. I
 believe I'm not initializing new actors properly? Do You have some
 idea how to fix it?

 Thanks,
 Nenad.


 On Mon, May 9, 2011 at 10:02 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 The problem is pretty straight forward. Looks like
 vtkMapper::ShallowCopy(..) does not copy the state of
 InterpolateScalarsBeforeMapping. I will commit a fix for that for next
 release. Until then, you'll have to manually copy ivars that you care
 about.

 Utkarsh

 On Sun, May 8, 2011 at 10:25 AM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 I uploaded test plugin that shows my problem at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 After I build and load the plugin from Qt client, I load
 disk_out_ref.ex2, select H2 for mapping scalars, check Interpolate
 Scalars on Display tab in Object inspector and go on File-Export
 (select .my file). I get 6 message boxes which report 0, 0, 0, 0, 0, 1
 (instead of 0, 0, 0, 0, 1, 1) as values for
 vtkMapper::InterpolateScalarsBeforeMapping. So, here is first
 question: How to create multiple vtkActor objects from
 vtkCompositePolyDataMapper2's input? I thought that vtkMyExporter.cpp
 Ln 138-162 should be fine, but uploaded sources shows different.

 Thanks,
 Nenad.

 On Fri, May 6, 2011 at 2:29 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 Nenad,

 There;s nothing much different about the vtkCompositePolyDataMapper or
 vtkPolyDataMapper as far as the state of the
 InterpolateScalarsBeforeMapping flag goes. I cannot see how that
 variable can return false if it is indeed set to true as you are
 saying. Can you share the plugin?

 Utkarsh

 On Thu, May 5, 2011 at 6:03 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Perhaps I was a bit unclear in my previous messages. Here are more
 details about the problem and test case.

 I use ParaView v3.10.1 release sources, Visual Studio 2008 SP1, Python
 2.7, OpenMPI 1.4.3 on Vista SP2. I compiled sources with standard
 options (just turned on BUILD_SHARED_LIBS, MPI and Python). I derived
 new class from vtkExporter, vtkMyExporter, and in
 vtkMyExporter::WriteData() I call code specified down. The problem is
 in QMessage line, which reports always 0, even when this flag is
 turned on. Same is happening with most of other parameters.

 I believe that learning how to decompose composite ptrActor into
 several actors with vtkPolyDataMapper mapper and vtkPolyData data will
 solve all other problems (which occur when generating texture from
 scalars). At the moment, I'm interested only in actors which use
 vtkCompositePolyDataMapper2 mappers. As input I use disk_out_ref.ex2
 with selected H2 (or any other channel) for mapping colors. Does
 anyone have any idea how this can be done? Btw, this worked perfectly
 under ParaView v.3.8.1 and with RenderWindow created using VTK 5.4.2
 (where I create vtkCompositePolyDataMapper2 and populate it manually).

 Thank You very much for Your help!

 Best regards,
 Nenad.

 

 1) Get interactive renderer 'InteractiveRenderer' from
 vtkMyExporter::RenderWindow
 2) For every actor 'ptrActor' (3D actors only) in InteractiveRenderer do:

    vtkCompositeDataIterator* actor_iterator;
    vtkCompositePolyDataMapper2* composite_mapper = NULL;

    // get actor's mapper
    vtkMapper* mapper = ptrActor-GetMapper();
    if(mapper == NULL)
        return true; // discard

    // get mapper's input
    vtkCompositeDataSet* composite_input_data =
 dynamic_castvtkCompositeDataSet*(mapper-GetInputDataObject(0, 0));
    if(composite_input_data != NULL)
    {
        // get actor's composite mapper
        composite_mapper = 
 dynamic_castvtkCompositePolyDataMapper2*(mapper);
        if(composite_mapper == NULL)
            return false;

        // in case input data is composite object, 

Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-13 Thread Nenad Vujicic
Hello everyone,

Does anyone have idea where could be the problem in uploaded sources?

Thanks,
Nenad.

On Tue, May 10, 2011 at 12:13 PM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 Thank You very much, but unfortunately, adding manually copying of
 parameters didn't solve all problems. I updated test plug-in with
 manually copying, converting scalars to texture, applying texture to
 actor and showing resulting actor in vtkRenderWindow. You can find
 updated sources at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 If You load again disk_out_ref.ex2, select H2 and try to export to
 .my, You'll see in separate vtkRenderWindow same object with applied
 generated
 texture which looks very bad. Again, it works fine in v3.8.1. I
 believe I'm not initializing new actors properly? Do You have some
 idea how to fix it?

 Thanks,
 Nenad.


 On Mon, May 9, 2011 at 10:02 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 The problem is pretty straight forward. Looks like
 vtkMapper::ShallowCopy(..) does not copy the state of
 InterpolateScalarsBeforeMapping. I will commit a fix for that for next
 release. Until then, you'll have to manually copy ivars that you care
 about.

 Utkarsh

 On Sun, May 8, 2011 at 10:25 AM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 I uploaded test plugin that shows my problem at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 After I build and load the plugin from Qt client, I load
 disk_out_ref.ex2, select H2 for mapping scalars, check Interpolate
 Scalars on Display tab in Object inspector and go on File-Export
 (select .my file). I get 6 message boxes which report 0, 0, 0, 0, 0, 1
 (instead of 0, 0, 0, 0, 1, 1) as values for
 vtkMapper::InterpolateScalarsBeforeMapping. So, here is first
 question: How to create multiple vtkActor objects from
 vtkCompositePolyDataMapper2's input? I thought that vtkMyExporter.cpp
 Ln 138-162 should be fine, but uploaded sources shows different.

 Thanks,
 Nenad.

 On Fri, May 6, 2011 at 2:29 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 Nenad,

 There;s nothing much different about the vtkCompositePolyDataMapper or
 vtkPolyDataMapper as far as the state of the
 InterpolateScalarsBeforeMapping flag goes. I cannot see how that
 variable can return false if it is indeed set to true as you are
 saying. Can you share the plugin?

 Utkarsh

 On Thu, May 5, 2011 at 6:03 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Perhaps I was a bit unclear in my previous messages. Here are more
 details about the problem and test case.

 I use ParaView v3.10.1 release sources, Visual Studio 2008 SP1, Python
 2.7, OpenMPI 1.4.3 on Vista SP2. I compiled sources with standard
 options (just turned on BUILD_SHARED_LIBS, MPI and Python). I derived
 new class from vtkExporter, vtkMyExporter, and in
 vtkMyExporter::WriteData() I call code specified down. The problem is
 in QMessage line, which reports always 0, even when this flag is
 turned on. Same is happening with most of other parameters.

 I believe that learning how to decompose composite ptrActor into
 several actors with vtkPolyDataMapper mapper and vtkPolyData data will
 solve all other problems (which occur when generating texture from
 scalars). At the moment, I'm interested only in actors which use
 vtkCompositePolyDataMapper2 mappers. As input I use disk_out_ref.ex2
 with selected H2 (or any other channel) for mapping colors. Does
 anyone have any idea how this can be done? Btw, this worked perfectly
 under ParaView v.3.8.1 and with RenderWindow created using VTK 5.4.2
 (where I create vtkCompositePolyDataMapper2 and populate it manually).

 Thank You very much for Your help!

 Best regards,
 Nenad.

 

 1) Get interactive renderer 'InteractiveRenderer' from
 vtkMyExporter::RenderWindow
 2) For every actor 'ptrActor' (3D actors only) in InteractiveRenderer do:

    vtkCompositeDataIterator* actor_iterator;
    vtkCompositePolyDataMapper2* composite_mapper = NULL;

    // get actor's mapper
    vtkMapper* mapper = ptrActor-GetMapper();
    if(mapper == NULL)
        return true; // discard

    // get mapper's input
    vtkCompositeDataSet* composite_input_data =
 dynamic_castvtkCompositeDataSet*(mapper-GetInputDataObject(0, 0));
    if(composite_input_data != NULL)
    {
        // get actor's composite mapper
        composite_mapper = 
 dynamic_castvtkCompositePolyDataMapper2*(mapper);
        if(composite_mapper == NULL)
            return false;

        // in case input data is composite object, get iterator for 
 traversing
        actor_iterator = composite_input_data-NewIterator();

        // initialize iterator for traversing
        actor_iterator-InitTraversal();
        actor_iterator-GoToFirstItem();
    }
    else
        actor_iterator = NULL;

    // export all components of input actor
    for(;;)
    {
        vtkSmartPointervtkActor actor;

        // if input data is composite object, create actor 

Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-10 Thread Nenad Vujicic
Dear Utkarsh,

Thank You very much, but unfortunately, adding manually copying of
parameters didn't solve all problems. I updated test plug-in with
manually copying, converting scalars to texture, applying texture to
actor and showing resulting actor in vtkRenderWindow. You can find
updated sources at
http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

If You load again disk_out_ref.ex2, select H2 and try to export to
.my, You'll see in separate vtkRenderWindow same object with applied
generated
texture which looks very bad. Again, it works fine in v3.8.1. I
believe I'm not initializing new actors properly? Do You have some
idea how to fix it?

Thanks,
Nenad.


On Mon, May 9, 2011 at 10:02 PM, Utkarsh Ayachit
utkarsh.ayac...@kitware.com wrote:
 The problem is pretty straight forward. Looks like
 vtkMapper::ShallowCopy(..) does not copy the state of
 InterpolateScalarsBeforeMapping. I will commit a fix for that for next
 release. Until then, you'll have to manually copy ivars that you care
 about.

 Utkarsh

 On Sun, May 8, 2011 at 10:25 AM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 I uploaded test plugin that shows my problem at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 After I build and load the plugin from Qt client, I load
 disk_out_ref.ex2, select H2 for mapping scalars, check Interpolate
 Scalars on Display tab in Object inspector and go on File-Export
 (select .my file). I get 6 message boxes which report 0, 0, 0, 0, 0, 1
 (instead of 0, 0, 0, 0, 1, 1) as values for
 vtkMapper::InterpolateScalarsBeforeMapping. So, here is first
 question: How to create multiple vtkActor objects from
 vtkCompositePolyDataMapper2's input? I thought that vtkMyExporter.cpp
 Ln 138-162 should be fine, but uploaded sources shows different.

 Thanks,
 Nenad.

 On Fri, May 6, 2011 at 2:29 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 Nenad,

 There;s nothing much different about the vtkCompositePolyDataMapper or
 vtkPolyDataMapper as far as the state of the
 InterpolateScalarsBeforeMapping flag goes. I cannot see how that
 variable can return false if it is indeed set to true as you are
 saying. Can you share the plugin?

 Utkarsh

 On Thu, May 5, 2011 at 6:03 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Perhaps I was a bit unclear in my previous messages. Here are more
 details about the problem and test case.

 I use ParaView v3.10.1 release sources, Visual Studio 2008 SP1, Python
 2.7, OpenMPI 1.4.3 on Vista SP2. I compiled sources with standard
 options (just turned on BUILD_SHARED_LIBS, MPI and Python). I derived
 new class from vtkExporter, vtkMyExporter, and in
 vtkMyExporter::WriteData() I call code specified down. The problem is
 in QMessage line, which reports always 0, even when this flag is
 turned on. Same is happening with most of other parameters.

 I believe that learning how to decompose composite ptrActor into
 several actors with vtkPolyDataMapper mapper and vtkPolyData data will
 solve all other problems (which occur when generating texture from
 scalars). At the moment, I'm interested only in actors which use
 vtkCompositePolyDataMapper2 mappers. As input I use disk_out_ref.ex2
 with selected H2 (or any other channel) for mapping colors. Does
 anyone have any idea how this can be done? Btw, this worked perfectly
 under ParaView v.3.8.1 and with RenderWindow created using VTK 5.4.2
 (where I create vtkCompositePolyDataMapper2 and populate it manually).

 Thank You very much for Your help!

 Best regards,
 Nenad.

 

 1) Get interactive renderer 'InteractiveRenderer' from
 vtkMyExporter::RenderWindow
 2) For every actor 'ptrActor' (3D actors only) in InteractiveRenderer do:

    vtkCompositeDataIterator* actor_iterator;
    vtkCompositePolyDataMapper2* composite_mapper = NULL;

    // get actor's mapper
    vtkMapper* mapper = ptrActor-GetMapper();
    if(mapper == NULL)
        return true; // discard

    // get mapper's input
    vtkCompositeDataSet* composite_input_data =
 dynamic_castvtkCompositeDataSet*(mapper-GetInputDataObject(0, 0));
    if(composite_input_data != NULL)
    {
        // get actor's composite mapper
        composite_mapper = 
 dynamic_castvtkCompositePolyDataMapper2*(mapper);
        if(composite_mapper == NULL)
            return false;

        // in case input data is composite object, get iterator for 
 traversing
        actor_iterator = composite_input_data-NewIterator();

        // initialize iterator for traversing
        actor_iterator-InitTraversal();
        actor_iterator-GoToFirstItem();
    }
    else
        actor_iterator = NULL;

    // export all components of input actor
    for(;;)
    {
        vtkSmartPointervtkActor actor;

        // if input data is composite object, create actor with
 current component as data, otherwise use entire actor (I do this
 because I need actor with vtkPolyDataMapper and vtkPolyData data for
 vtkScalarsToColorsPainter)
        if(actor_iterator 

Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-09 Thread Utkarsh Ayachit
The problem is pretty straight forward. Looks like
vtkMapper::ShallowCopy(..) does not copy the state of
InterpolateScalarsBeforeMapping. I will commit a fix for that for next
release. Until then, you'll have to manually copy ivars that you care
about.

Utkarsh

On Sun, May 8, 2011 at 10:25 AM, Nenad Vujicic nena...@gmail.com wrote:
 Dear Utkarsh,

 I uploaded test plugin that shows my problem at
 http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

 After I build and load the plugin from Qt client, I load
 disk_out_ref.ex2, select H2 for mapping scalars, check Interpolate
 Scalars on Display tab in Object inspector and go on File-Export
 (select .my file). I get 6 message boxes which report 0, 0, 0, 0, 0, 1
 (instead of 0, 0, 0, 0, 1, 1) as values for
 vtkMapper::InterpolateScalarsBeforeMapping. So, here is first
 question: How to create multiple vtkActor objects from
 vtkCompositePolyDataMapper2's input? I thought that vtkMyExporter.cpp
 Ln 138-162 should be fine, but uploaded sources shows different.

 Thanks,
 Nenad.

 On Fri, May 6, 2011 at 2:29 PM, Utkarsh Ayachit
 utkarsh.ayac...@kitware.com wrote:
 Nenad,

 There;s nothing much different about the vtkCompositePolyDataMapper or
 vtkPolyDataMapper as far as the state of the
 InterpolateScalarsBeforeMapping flag goes. I cannot see how that
 variable can return false if it is indeed set to true as you are
 saying. Can you share the plugin?

 Utkarsh

 On Thu, May 5, 2011 at 6:03 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Perhaps I was a bit unclear in my previous messages. Here are more
 details about the problem and test case.

 I use ParaView v3.10.1 release sources, Visual Studio 2008 SP1, Python
 2.7, OpenMPI 1.4.3 on Vista SP2. I compiled sources with standard
 options (just turned on BUILD_SHARED_LIBS, MPI and Python). I derived
 new class from vtkExporter, vtkMyExporter, and in
 vtkMyExporter::WriteData() I call code specified down. The problem is
 in QMessage line, which reports always 0, even when this flag is
 turned on. Same is happening with most of other parameters.

 I believe that learning how to decompose composite ptrActor into
 several actors with vtkPolyDataMapper mapper and vtkPolyData data will
 solve all other problems (which occur when generating texture from
 scalars). At the moment, I'm interested only in actors which use
 vtkCompositePolyDataMapper2 mappers. As input I use disk_out_ref.ex2
 with selected H2 (or any other channel) for mapping colors. Does
 anyone have any idea how this can be done? Btw, this worked perfectly
 under ParaView v.3.8.1 and with RenderWindow created using VTK 5.4.2
 (where I create vtkCompositePolyDataMapper2 and populate it manually).

 Thank You very much for Your help!

 Best regards,
 Nenad.

 

 1) Get interactive renderer 'InteractiveRenderer' from
 vtkMyExporter::RenderWindow
 2) For every actor 'ptrActor' (3D actors only) in InteractiveRenderer do:

    vtkCompositeDataIterator* actor_iterator;
    vtkCompositePolyDataMapper2* composite_mapper = NULL;

    // get actor's mapper
    vtkMapper* mapper = ptrActor-GetMapper();
    if(mapper == NULL)
        return true; // discard

    // get mapper's input
    vtkCompositeDataSet* composite_input_data =
 dynamic_castvtkCompositeDataSet*(mapper-GetInputDataObject(0, 0));
    if(composite_input_data != NULL)
    {
        // get actor's composite mapper
        composite_mapper = 
 dynamic_castvtkCompositePolyDataMapper2*(mapper);
        if(composite_mapper == NULL)
            return false;

        // in case input data is composite object, get iterator for 
 traversing
        actor_iterator = composite_input_data-NewIterator();

        // initialize iterator for traversing
        actor_iterator-InitTraversal();
        actor_iterator-GoToFirstItem();
    }
    else
        actor_iterator = NULL;

    // export all components of input actor
    for(;;)
    {
        vtkSmartPointervtkActor actor;

        // if input data is composite object, create actor with
 current component as data, otherwise use entire actor (I do this
 because I need actor with vtkPolyDataMapper and vtkPolyData data for
 vtkScalarsToColorsPainter)
        if(actor_iterator != NULL)
        {
            // check if there are no more components
            if(actor_iterator-IsDoneWithTraversal())
                break;

            // get next component
            vtkDataObject* data_object = 
 actor_iterator-GetCurrentDataObject();
            if(dynamic_castvtkPolyData*(data_object) != NULL)
            {
                // get poly data
                vtkPolyData* poly_data =
 dynamic_castvtkPolyData*(data_object);

                // create new temporary poly data mapper
                vtkSmartPointervtkPolyDataMapper poly_data_mapper =
 vtkSmartPointervtkPolyDataMapper::New();

                // copy mapper's parameters
                poly_data_mapper-ShallowCopy(composite_mapper);

                // set mapper's 

Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-08 Thread Nenad Vujicic
Dear Utkarsh,

I uploaded test plugin that shows my problem at
http://alas.matf.bg.ac.rs/~mr00053/projects/PVTest.zip.

After I build and load the plugin from Qt client, I load
disk_out_ref.ex2, select H2 for mapping scalars, check Interpolate
Scalars on Display tab in Object inspector and go on File-Export
(select .my file). I get 6 message boxes which report 0, 0, 0, 0, 0, 1
(instead of 0, 0, 0, 0, 1, 1) as values for
vtkMapper::InterpolateScalarsBeforeMapping. So, here is first
question: How to create multiple vtkActor objects from
vtkCompositePolyDataMapper2's input? I thought that vtkMyExporter.cpp
Ln 138-162 should be fine, but uploaded sources shows different.

Thanks,
Nenad.

On Fri, May 6, 2011 at 2:29 PM, Utkarsh Ayachit
utkarsh.ayac...@kitware.com wrote:
 Nenad,

 There;s nothing much different about the vtkCompositePolyDataMapper or
 vtkPolyDataMapper as far as the state of the
 InterpolateScalarsBeforeMapping flag goes. I cannot see how that
 variable can return false if it is indeed set to true as you are
 saying. Can you share the plugin?

 Utkarsh

 On Thu, May 5, 2011 at 6:03 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Perhaps I was a bit unclear in my previous messages. Here are more
 details about the problem and test case.

 I use ParaView v3.10.1 release sources, Visual Studio 2008 SP1, Python
 2.7, OpenMPI 1.4.3 on Vista SP2. I compiled sources with standard
 options (just turned on BUILD_SHARED_LIBS, MPI and Python). I derived
 new class from vtkExporter, vtkMyExporter, and in
 vtkMyExporter::WriteData() I call code specified down. The problem is
 in QMessage line, which reports always 0, even when this flag is
 turned on. Same is happening with most of other parameters.

 I believe that learning how to decompose composite ptrActor into
 several actors with vtkPolyDataMapper mapper and vtkPolyData data will
 solve all other problems (which occur when generating texture from
 scalars). At the moment, I'm interested only in actors which use
 vtkCompositePolyDataMapper2 mappers. As input I use disk_out_ref.ex2
 with selected H2 (or any other channel) for mapping colors. Does
 anyone have any idea how this can be done? Btw, this worked perfectly
 under ParaView v.3.8.1 and with RenderWindow created using VTK 5.4.2
 (where I create vtkCompositePolyDataMapper2 and populate it manually).

 Thank You very much for Your help!

 Best regards,
 Nenad.

 

 1) Get interactive renderer 'InteractiveRenderer' from
 vtkMyExporter::RenderWindow
 2) For every actor 'ptrActor' (3D actors only) in InteractiveRenderer do:

    vtkCompositeDataIterator* actor_iterator;
    vtkCompositePolyDataMapper2* composite_mapper = NULL;

    // get actor's mapper
    vtkMapper* mapper = ptrActor-GetMapper();
    if(mapper == NULL)
        return true; // discard

    // get mapper's input
    vtkCompositeDataSet* composite_input_data =
 dynamic_castvtkCompositeDataSet*(mapper-GetInputDataObject(0, 0));
    if(composite_input_data != NULL)
    {
        // get actor's composite mapper
        composite_mapper = dynamic_castvtkCompositePolyDataMapper2*(mapper);
        if(composite_mapper == NULL)
            return false;

        // in case input data is composite object, get iterator for traversing
        actor_iterator = composite_input_data-NewIterator();

        // initialize iterator for traversing
        actor_iterator-InitTraversal();
        actor_iterator-GoToFirstItem();
    }
    else
        actor_iterator = NULL;

    // export all components of input actor
    for(;;)
    {
        vtkSmartPointervtkActor actor;

        // if input data is composite object, create actor with
 current component as data, otherwise use entire actor (I do this
 because I need actor with vtkPolyDataMapper and vtkPolyData data for
 vtkScalarsToColorsPainter)
        if(actor_iterator != NULL)
        {
            // check if there are no more components
            if(actor_iterator-IsDoneWithTraversal())
                break;

            // get next component
            vtkDataObject* data_object = 
 actor_iterator-GetCurrentDataObject();
            if(dynamic_castvtkPolyData*(data_object) != NULL)
            {
                // get poly data
                vtkPolyData* poly_data =
 dynamic_castvtkPolyData*(data_object);

                // create new temporary poly data mapper
                vtkSmartPointervtkPolyDataMapper poly_data_mapper =
 vtkSmartPointervtkPolyDataMapper::New();

                // copy mapper's parameters
                poly_data_mapper-ShallowCopy(composite_mapper);

                // set mapper's input
                poly_data_mapper-SetInput(poly_data);

                // create new actor
                actor = vtkSmartPointervtkActor::New();

                // copy actor parameters
                actor-ShallowCopy(ptrActor);

                // set actor's mapper
                actor-SetMapper(poly_data_mapper);
            }
            

Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-06 Thread Utkarsh Ayachit
Nenad,

There;s nothing much different about the vtkCompositePolyDataMapper or
vtkPolyDataMapper as far as the state of the
InterpolateScalarsBeforeMapping flag goes. I cannot see how that
variable can return false if it is indeed set to true as you are
saying. Can you share the plugin?

Utkarsh

On Thu, May 5, 2011 at 6:03 PM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 Perhaps I was a bit unclear in my previous messages. Here are more
 details about the problem and test case.

 I use ParaView v3.10.1 release sources, Visual Studio 2008 SP1, Python
 2.7, OpenMPI 1.4.3 on Vista SP2. I compiled sources with standard
 options (just turned on BUILD_SHARED_LIBS, MPI and Python). I derived
 new class from vtkExporter, vtkMyExporter, and in
 vtkMyExporter::WriteData() I call code specified down. The problem is
 in QMessage line, which reports always 0, even when this flag is
 turned on. Same is happening with most of other parameters.

 I believe that learning how to decompose composite ptrActor into
 several actors with vtkPolyDataMapper mapper and vtkPolyData data will
 solve all other problems (which occur when generating texture from
 scalars). At the moment, I'm interested only in actors which use
 vtkCompositePolyDataMapper2 mappers. As input I use disk_out_ref.ex2
 with selected H2 (or any other channel) for mapping colors. Does
 anyone have any idea how this can be done? Btw, this worked perfectly
 under ParaView v.3.8.1 and with RenderWindow created using VTK 5.4.2
 (where I create vtkCompositePolyDataMapper2 and populate it manually).

 Thank You very much for Your help!

 Best regards,
 Nenad.

 

 1) Get interactive renderer 'InteractiveRenderer' from
 vtkMyExporter::RenderWindow
 2) For every actor 'ptrActor' (3D actors only) in InteractiveRenderer do:

    vtkCompositeDataIterator* actor_iterator;
    vtkCompositePolyDataMapper2* composite_mapper = NULL;

    // get actor's mapper
    vtkMapper* mapper = ptrActor-GetMapper();
    if(mapper == NULL)
        return true; // discard

    // get mapper's input
    vtkCompositeDataSet* composite_input_data =
 dynamic_castvtkCompositeDataSet*(mapper-GetInputDataObject(0, 0));
    if(composite_input_data != NULL)
    {
        // get actor's composite mapper
        composite_mapper = dynamic_castvtkCompositePolyDataMapper2*(mapper);
        if(composite_mapper == NULL)
            return false;

        // in case input data is composite object, get iterator for traversing
        actor_iterator = composite_input_data-NewIterator();

        // initialize iterator for traversing
        actor_iterator-InitTraversal();
        actor_iterator-GoToFirstItem();
    }
    else
        actor_iterator = NULL;

    // export all components of input actor
    for(;;)
    {
        vtkSmartPointervtkActor actor;

        // if input data is composite object, create actor with
 current component as data, otherwise use entire actor (I do this
 because I need actor with vtkPolyDataMapper and vtkPolyData data for
 vtkScalarsToColorsPainter)
        if(actor_iterator != NULL)
        {
            // check if there are no more components
            if(actor_iterator-IsDoneWithTraversal())
                break;

            // get next component
            vtkDataObject* data_object = 
 actor_iterator-GetCurrentDataObject();
            if(dynamic_castvtkPolyData*(data_object) != NULL)
            {
                // get poly data
                vtkPolyData* poly_data =
 dynamic_castvtkPolyData*(data_object);

                // create new temporary poly data mapper
                vtkSmartPointervtkPolyDataMapper poly_data_mapper =
 vtkSmartPointervtkPolyDataMapper::New();

                // copy mapper's parameters
                poly_data_mapper-ShallowCopy(composite_mapper);

                // set mapper's input
                poly_data_mapper-SetInput(poly_data);

                // create new actor
                actor = vtkSmartPointervtkActor::New();

                // copy actor parameters
                actor-ShallowCopy(ptrActor);

                // set actor's mapper
                actor-SetMapper(poly_data_mapper);
            }
            else
            {
                return false;
            }
        }
        else
            actor = ptrActor;

        // report some actor's property
        QMessageBox::about(NULL, ,
 QString::number(ptrActor-GetMapper()-GetInterpolateScalarsBeforeMapping()));

        // perform transformation from scalars to texture using
        vtkScalarsToColorsPainter class

        // extract data from ptrActor (I use previously generated
 texture instead of colors / scalars)

        // write to my custom format

        // if input is not composite, break the loop
        if(composite_input_data == NULL)
            break;

        // set iterator on next item
        if(actor_iterator != NULL)
            actor_iterator-GoToNextItem();
    }


 

Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-05 Thread Nenad Vujicic
Hello everyone,

Perhaps I was a bit unclear in my previous messages. Here are more
details about the problem and test case.

I use ParaView v3.10.1 release sources, Visual Studio 2008 SP1, Python
2.7, OpenMPI 1.4.3 on Vista SP2. I compiled sources with standard
options (just turned on BUILD_SHARED_LIBS, MPI and Python). I derived
new class from vtkExporter, vtkMyExporter, and in
vtkMyExporter::WriteData() I call code specified down. The problem is
in QMessage line, which reports always 0, even when this flag is
turned on. Same is happening with most of other parameters.

I believe that learning how to decompose composite ptrActor into
several actors with vtkPolyDataMapper mapper and vtkPolyData data will
solve all other problems (which occur when generating texture from
scalars). At the moment, I'm interested only in actors which use
vtkCompositePolyDataMapper2 mappers. As input I use disk_out_ref.ex2
with selected H2 (or any other channel) for mapping colors. Does
anyone have any idea how this can be done? Btw, this worked perfectly
under ParaView v.3.8.1 and with RenderWindow created using VTK 5.4.2
(where I create vtkCompositePolyDataMapper2 and populate it manually).

Thank You very much for Your help!

Best regards,
Nenad.



1) Get interactive renderer 'InteractiveRenderer' from
vtkMyExporter::RenderWindow
2) For every actor 'ptrActor' (3D actors only) in InteractiveRenderer do:

vtkCompositeDataIterator* actor_iterator;
vtkCompositePolyDataMapper2* composite_mapper = NULL;

// get actor's mapper
vtkMapper* mapper = ptrActor-GetMapper();
if(mapper == NULL)
return true; // discard

// get mapper's input
vtkCompositeDataSet* composite_input_data =
dynamic_castvtkCompositeDataSet*(mapper-GetInputDataObject(0, 0));
if(composite_input_data != NULL)
{
// get actor's composite mapper
composite_mapper = dynamic_castvtkCompositePolyDataMapper2*(mapper);
if(composite_mapper == NULL)
return false;

// in case input data is composite object, get iterator for traversing
actor_iterator = composite_input_data-NewIterator();

// initialize iterator for traversing
actor_iterator-InitTraversal();
actor_iterator-GoToFirstItem();
}
else
actor_iterator = NULL;

// export all components of input actor
for(;;)
{
vtkSmartPointervtkActor actor;

// if input data is composite object, create actor with
current component as data, otherwise use entire actor (I do this
because I need actor with vtkPolyDataMapper and vtkPolyData data for
vtkScalarsToColorsPainter)
if(actor_iterator != NULL)
{
// check if there are no more components
if(actor_iterator-IsDoneWithTraversal())
break;

// get next component
vtkDataObject* data_object = actor_iterator-GetCurrentDataObject();
if(dynamic_castvtkPolyData*(data_object) != NULL)
{
// get poly data
vtkPolyData* poly_data =
dynamic_castvtkPolyData*(data_object);

// create new temporary poly data mapper
vtkSmartPointervtkPolyDataMapper poly_data_mapper =
vtkSmartPointervtkPolyDataMapper::New();

// copy mapper's parameters
poly_data_mapper-ShallowCopy(composite_mapper);

// set mapper's input
poly_data_mapper-SetInput(poly_data);

// create new actor
actor = vtkSmartPointervtkActor::New();

// copy actor parameters
actor-ShallowCopy(ptrActor);

// set actor's mapper
actor-SetMapper(poly_data_mapper);
}
else
{
return false;
}
}
else
actor = ptrActor;

// report some actor's property
QMessageBox::about(NULL, ,
QString::number(ptrActor-GetMapper()-GetInterpolateScalarsBeforeMapping()));

// perform transformation from scalars to texture using
vtkScalarsToColorsPainter class

// extract data from ptrActor (I use previously generated
texture instead of colors / scalars)

// write to my custom format

// if input is not composite, break the loop
if(composite_input_data == NULL)
break;

// set iterator on next item
if(actor_iterator != NULL)
actor_iterator-GoToNextItem();
}




On Wed, May 4, 2011 at 3:04 PM, Utkarsh Ayachit
utkarsh.ayac...@kitware.com wrote:
 Nenad,

 I am not sure I understand where this code is being put. You say it's
 an exporter? Meaning it exports to something like a vrml/x3d file? But
 that doesn't seem right since you say you are using the
 PolyDataMapper.

 What is this plugin 

[Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-04 Thread Nenad Vujicic
Hello everyone,

I'm having some problems with porting my ParaView exporter plug-in to
v3.10, because ParaView started using vtkCompositeDataSet internally
instead of keeping components merged. The problem is in performing
transformation of scalars to texture using vtkScalarsToColorsPainter
class. Here is approximately my code (questions come after
pseudo-code):

for every actor in currently active renderer:
  for every component of composite data object (I retrieve
vtkDataObject* with vtkCompositeDataIterator::GetCurrentDataObject()
call)

// prepare new actor which defines component
dynamic cast vtkDataObject* data_object to vtkPolyData* poly_data;
create new vtkPolyDataMapper* pdm;
pdm-ShallowCopy(composite_mapper);
pdm-SetInput(poly_data);
allocate new actor and do actor-ShallowCopy(ptrActor) //
ptrActor) is selected actor from currently active renderer - line 1
actor-SetMapper(pdm);

// perform converting from scalars to texture
ConvertScalarsToColors(actor);

Routine ConvertScalarsToColors(vtkActor*) is defined in following way:

L1 get actor's poly_data and mapper references,
L2 create s2c - instance of MyVtkScalarsToColorsPainter (derived from
vtkScalarsToColorsPainter for allowing setting its protected
attributes),
L3 initialize s2c parameters from mapper and poly_data
L4 if s2c-CanUseTextureMapForColoring(poly_data) returns true,
s2c-PrepareForRendering(), get texture and texture coordinates and
sets them to passed actor

Q1: First problem is in L3 when setting s2c parameters. Original
mapper has turned on InterpolateScalarsBeforeMapping flag, but new one
doesn't have it. How to safely copy properties of
vtkCompositePolyDataMapper2 to vtkPolyDataMapper or I shouldn't do it?

Q2: Even if I override above problem by turning on manually
InterpolateScalarsBeforeMapping, I get very bad texture on output. It
looks like scalars were not interpolated before mapping, sometimes
even more distorted..

The same code works with v3.8 perfectly. I also tried to apply
vtkCompositeDataGeometryFilter to composite data object and to apply
ConvertScalarsToColors() to result (even without creating new actor),
but without success. Strange thing is that when I try this with
manually created VTK scene (out of ParaView) it works perfectly and
texture looks great!

I would appreciate any help!

Best regards,
Nenad.
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview


Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-04 Thread Utkarsh Ayachit
Nenad,

I am not sure I understand where this code is being put. You say it's
an exporter? Meaning it exports to something like a vrml/x3d file? But
that doesn't seem right since you say you are using the
PolyDataMapper.

What is this plugin trying to achieve?

Utkarsh

On Wed, May 4, 2011 at 8:31 AM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 I'm having some problems with porting my ParaView exporter plug-in to
 v3.10, because ParaView started using vtkCompositeDataSet internally
 instead of keeping components merged. The problem is in performing
 transformation of scalars to texture using vtkScalarsToColorsPainter
 class. Here is approximately my code (questions come after
 pseudo-code):

 for every actor in currently active renderer:
  for every component of composite data object (I retrieve
 vtkDataObject* with vtkCompositeDataIterator::GetCurrentDataObject()
 call)

    // prepare new actor which defines component
    dynamic cast vtkDataObject* data_object to vtkPolyData* poly_data;
    create new vtkPolyDataMapper* pdm;
    pdm-ShallowCopy(composite_mapper);
    pdm-SetInput(poly_data);
    allocate new actor and do actor-ShallowCopy(ptrActor) //
 ptrActor) is selected actor from currently active renderer - line 1
    actor-SetMapper(pdm);

    // perform converting from scalars to texture
    ConvertScalarsToColors(actor);

 Routine ConvertScalarsToColors(vtkActor*) is defined in following way:

 L1 get actor's poly_data and mapper references,
 L2 create s2c - instance of MyVtkScalarsToColorsPainter (derived from
 vtkScalarsToColorsPainter for allowing setting its protected
 attributes),
 L3 initialize s2c parameters from mapper and poly_data
 L4 if s2c-CanUseTextureMapForColoring(poly_data) returns true,
 s2c-PrepareForRendering(), get texture and texture coordinates and
 sets them to passed actor

 Q1: First problem is in L3 when setting s2c parameters. Original
 mapper has turned on InterpolateScalarsBeforeMapping flag, but new one
 doesn't have it. How to safely copy properties of
 vtkCompositePolyDataMapper2 to vtkPolyDataMapper or I shouldn't do it?

 Q2: Even if I override above problem by turning on manually
 InterpolateScalarsBeforeMapping, I get very bad texture on output. It
 looks like scalars were not interpolated before mapping, sometimes
 even more distorted..

 The same code works with v3.8 perfectly. I also tried to apply
 vtkCompositeDataGeometryFilter to composite data object and to apply
 ConvertScalarsToColors() to result (even without creating new actor),
 but without success. Strange thing is that when I try this with
 manually created VTK scene (out of ParaView) it works perfectly and
 texture looks great!

 I would appreciate any help!

 Best regards,
 Nenad.
 ___
 Powered by www.kitware.com

 Visit other Kitware open-source projects at 
 http://www.kitware.com/opensource/opensource.html

 Please keep messages on-topic and check the ParaView Wiki at: 
 http://paraview.org/Wiki/ParaView

 Follow this link to subscribe/unsubscribe:
 http://www.paraview.org/mailman/listinfo/paraview

___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview


Re: [Paraview] Problems with 'interpolate scalars before mapping' in v3.10

2011-05-04 Thread Nenad Vujicic
Dear Utkarsh,

Thank You very much on Your answer.

Yes, my plug-in is exporter, which means I define it in class derived
from vtkExporter. It extracts all possible scene information from
vtkExporter::RenderWindow object (in both Qt-client and python-client
modes) and writes these data to very special format using proprietary
software. Because output format is a bit specific, I have to convert
scalar values to texture first and then to export the texture, I
cannot output interpolated scalars or colors.

Like in my pseudo-code, I first take currently active renderer (from
vtkExporter::RenderWindow) and collect geometry / topology /
other_info from it using my pseudo-code. After this step, I write
collected data to my format using other software without problems.
However, I have problems with transforming scalars to texture. Btw,
I'm sure collected data is fine, because I can preview it using other
software.. Also, it works perfect under v3.8.*.

Do You have any idea?

Thanks,
Nenad.


On Wed, May 4, 2011 at 3:04 PM, Utkarsh Ayachit
utkarsh.ayac...@kitware.com wrote:
 Nenad,

 I am not sure I understand where this code is being put. You say it's
 an exporter? Meaning it exports to something like a vrml/x3d file? But
 that doesn't seem right since you say you are using the
 PolyDataMapper.

 What is this plugin trying to achieve?

 Utkarsh

 On Wed, May 4, 2011 at 8:31 AM, Nenad Vujicic nena...@gmail.com wrote:
 Hello everyone,

 I'm having some problems with porting my ParaView exporter plug-in to
 v3.10, because ParaView started using vtkCompositeDataSet internally
 instead of keeping components merged. The problem is in performing
 transformation of scalars to texture using vtkScalarsToColorsPainter
 class. Here is approximately my code (questions come after
 pseudo-code):

 for every actor in currently active renderer:
  for every component of composite data object (I retrieve
 vtkDataObject* with vtkCompositeDataIterator::GetCurrentDataObject()
 call)

    // prepare new actor which defines component
    dynamic cast vtkDataObject* data_object to vtkPolyData* poly_data;
    create new vtkPolyDataMapper* pdm;
    pdm-ShallowCopy(composite_mapper);
    pdm-SetInput(poly_data);
    allocate new actor and do actor-ShallowCopy(ptrActor) //
 ptrActor) is selected actor from currently active renderer - line 1
    actor-SetMapper(pdm);

    // perform converting from scalars to texture
    ConvertScalarsToColors(actor);

 Routine ConvertScalarsToColors(vtkActor*) is defined in following way:

 L1 get actor's poly_data and mapper references,
 L2 create s2c - instance of MyVtkScalarsToColorsPainter (derived from
 vtkScalarsToColorsPainter for allowing setting its protected
 attributes),
 L3 initialize s2c parameters from mapper and poly_data
 L4 if s2c-CanUseTextureMapForColoring(poly_data) returns true,
 s2c-PrepareForRendering(), get texture and texture coordinates and
 sets them to passed actor

 Q1: First problem is in L3 when setting s2c parameters. Original
 mapper has turned on InterpolateScalarsBeforeMapping flag, but new one
 doesn't have it. How to safely copy properties of
 vtkCompositePolyDataMapper2 to vtkPolyDataMapper or I shouldn't do it?

 Q2: Even if I override above problem by turning on manually
 InterpolateScalarsBeforeMapping, I get very bad texture on output. It
 looks like scalars were not interpolated before mapping, sometimes
 even more distorted..

 The same code works with v3.8 perfectly. I also tried to apply
 vtkCompositeDataGeometryFilter to composite data object and to apply
 ConvertScalarsToColors() to result (even without creating new actor),
 but without success. Strange thing is that when I try this with
 manually created VTK scene (out of ParaView) it works perfectly and
 texture looks great!

 I would appreciate any help!

 Best regards,
 Nenad.
 ___
 Powered by www.kitware.com

 Visit other Kitware open-source projects at 
 http://www.kitware.com/opensource/opensource.html

 Please keep messages on-topic and check the ParaView Wiki at: 
 http://paraview.org/Wiki/ParaView

 Follow this link to subscribe/unsubscribe:
 http://www.paraview.org/mailman/listinfo/paraview


___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview