<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="cid:filelist.xml@01C53E93.03433D20">
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:DoNotRelyOnCSS/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:SpellingState>Clean</w:SpellingState>
<w:GrammarState>Clean</w:GrammarState>
<w:DocumentKind>DocumentEmail</w:DocumentKind>
<w:EnvelopeVis/>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-parent:"";
        margin:0cm;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;
        text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;
        text-underline:single;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        mso-style-noshow:yes;
        mso-ansi-font-size:10.0pt;
        mso-bidi-font-size:10.0pt;
        font-family:Arial;
        mso-ascii-font-family:Arial;
        mso-hansi-font-family:Arial;
        mso-bidi-font-family:Arial;
        color:windowtext;}
span.SpellE
        {mso-style-name:"";
        mso-spl-e:yes;}
span.GramE
        {mso-style-name:"";
        mso-gram-e:yes;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;
        mso-header-margin:35.4pt;
        mso-footer-margin:35.4pt;
        mso-paper-source:0;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
        {mso-style-name:"Table Normal";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";}
</style>
<![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple style='tab-interval:36.0pt'>
<div class=Section1>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I have some strange problems concerning the <span
class=SpellE>vtkVoxelModeller</span> class. I’m currently trying to visualize
a polygonal model (<span class=SpellE>vtkPolyData</span>) using <span
class=SpellE>voxel</span> through <span class=SpellE>vtkVoxelModeller</span>.
Here’s my code: <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>// vtkMesh3D inherits <span class=SpellE>vtkPolyData</span>
and adds a function to read geometry from OFF format files<o:p></o:p></span></font></p>
<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>class</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> vtkMesh3D:
public <span class=SpellE>vtkPolyData</span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>{<o:p></o:p></span></font></p>
<p class=MsoNormal><span class=GramE><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>public</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>:<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:1'> </span><span
class=SpellE><span class=GramE>bool</span></span> <span class=SpellE>LoadOFFfile</span>(const
char *<span class=SpellE>filepath</span>);<span style='mso-tab-count:1'> </span>//
loads an OFF file. The <span class=SpellE>filesystem</span> path of the file is
given from <span class=SpellE>filepath</span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>};<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Now <span class=GramE>here’s is</span> the code on my
main function:<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><span class=SpellE><span class=GramE><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'>int</span></font></span></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> main(<span
class=SpellE>int</span> <span class=SpellE>argc</span>, char **<span
class=SpellE>argv</span>)<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>{<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:1'> </span><span
class=GramE>if(</span><span class=SpellE>argc</span> != 3)<span
style='mso-tab-count:1'> </span>//
wrong number of command line arguments<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:1'> </span>{<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>fprintf</span></span><span class=GramE>(</span><span
class=SpellE>stderr</span>, "Usage:\nModelViewer.exe <3D model
file><span style='mso-spacerun:yes'> </span><<span class=SpellE>Voxelization</span>
resolution>\n");<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=GramE>return</span> 1;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:1'> </span>}<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:1'> </span><span
class=GramE>else</span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:1'> </span>{<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
########################################################################<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
###### MODEL WINDOW ####################################################<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
create a new model<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>vtkMesh3D
*model = (vtkMesh3D *<span class=GramE>)vtkMesh3D</span>::New();<span
style='mso-tab-count:1'> </span>// create a new
object of class vtkMesh3D: public <span class=SpellE>vtkPolyData</span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=GramE>if(</span>!model-><span class=SpellE>LoadOFFfile</span>(<span
class=SpellE>argv</span>[1]))<span style='mso-tab-count:1'> </span>//
load the file<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>{<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:3'> </span><span
class=SpellE><span class=GramE>fprintf</span></span><span class=GramE>(</span><span
class=SpellE>stderr</span>, "\<span class=SpellE>nFile</span>
\"%s\" cannot be loaded", <span class=SpellE>argv</span>[1]);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:3'> </span><span
class=GramE>return</span> -1;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>}<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
map to graphics library<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkPolyDataMapper</span></span> *<span
class=SpellE>model_map</span> = <span class=SpellE>vtkPolyDataMapper::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_map</span>-><span class=SpellE><span class=GramE>SetInput</span></span><span
class=GramE>(</span>model);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
actor coordinates geometry, properties, transformation<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkActor</span></span> *<span class=SpellE>model_actor</span>
= <span class=SpellE>vtkActor::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_actor</span>-><span class=SpellE><span class=GramE>SetMapper</span></span><span
class=GramE>(</span><span class=SpellE>model_map</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
setup a <span class=SpellE>renderer</span> and render window<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkRenderer</span></span> *<span class=SpellE>model_renderer</span>
= <span class=SpellE>vtkRenderer::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkRenderWindow</span></span> *<span
class=SpellE>model_Win</span> = <span class=SpellE>vtkRenderWindow::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_Win</span>-><span class=SpellE><span class=GramE>AddRenderer</span></span><span
class=GramE>(</span><span class=SpellE>model_renderer</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_Win</span>-><span class=SpellE><span class=GramE>SetWindowName</span></span><span
class=GramE>(</span>"3D Model Viewer");<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>#<span class=SpellE>ifdef</span> _DEBUG<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//<span
class=SpellE>model_Win</span>-><span class=GramE>Print(</span><span
class=SpellE>cout</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>#<span class=SpellE>endif</span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
an <span class=SpellE>interactor</span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkRenderWindowInteractor</span></span> *<span
class=SpellE>model_Inter</span> = <span class=SpellE>vtkRenderWindowInteractor::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_Inter</span>-><span class=SpellE><span class=GramE>SetRenderWindow</span></span><span
class=GramE>(</span><span class=SpellE>model_Win</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
add the actor to the scene<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_renderer</span>-><span class=SpellE><span class=GramE>AddActor</span></span><span
class=GramE>(</span><span class=SpellE>model_actor</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_renderer</span>-><span class=SpellE><span class=GramE>SetBackground</span></span><span
class=GramE>(</span>0, 0, 0); // Background color white<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
render an image (lights and cameras are created automatically)<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_Win</span>-><span class=GramE>Render(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
begin mouse interaction<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_Inter</span>-><span class=GramE>Start(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
########################################################################<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
Up to now everything works perfect and the model renders correctly in the first
Window<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
Now to the problems<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
########################################################################<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
###### VOXEL WINDOW ####################################################<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//*<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
<span class=SpellE>Voxelize</span> model<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>int</span></span> <span class=SpellE>vgrid_res</span>
= <span class=SpellE>atoi</span>(<span class=SpellE>argv</span>[2]);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
<span class=GramE>Create</span> <span class=SpellE>voxel</span> model<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkVoxelModeller</span></span> *<span
class=SpellE>voxel_model</span> = <span class=SpellE>vtkVoxelModeller::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_model</span>-><span class=SpellE><span class=GramE>SetInput</span></span><span
class=GramE>(</span>model);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_model</span>-><span class=SpellE><span class=GramE>SetSampleDimensions</span></span><span
class=GramE>(</span><span class=SpellE>vgrid_res</span>, <span class=SpellE>vgrid_res</span>,
<span class=SpellE>vgrid_res</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_model</span>-><span class=SpellE><span class=GramE>SetModelBounds</span></span><span
class=GramE>(</span>model-><span class=SpellE>GetBounds</span>());<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
<span class=GramE>Create</span> a filter<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkContourFilter</span></span> *filter = <span
class=SpellE>vtkContourFilter::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
If you pass without casting the compiler reports an type cast error<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt;text-indent:36.0pt'><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'>// <span
class=GramE>This</span> is strange because <span class=SpellE>vtkDataSet</span>
is parent class to <span class=SpellE>vtkImageData</span><o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt;text-indent:36.0pt'><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'>// “In other
words, an object of a derived class can be treated as an object of its base
class when manipulated<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:36.0pt;text-indent:36.0pt'><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'>// through pointers
and references.” says <span class=SpellE><span class=GramE>mr</span></span>.
<span class=SpellE>Stroustrup</span> in his book<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=GramE>filter</span>-><span class=SpellE>SetInput</span>((<span
class=SpellE>vtkDataSet</span> *)<span class=SpellE>voxel_model</span>-><span
class=SpellE>GetOutput</span>());<span style='mso-tab-count:1'> </span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=GramE>filter</span>-><span class=SpellE>SetValue</span>(0, 0.999);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
map to graphics library<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkPolyDataMapper</span></span> *<span
class=SpellE>voxel_map</span> = <span class=SpellE>vtkPolyDataMapper::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_map</span>-><span class=SpellE><span class=GramE>SetInput</span></span><span
class=GramE>(</span>filter-><span class=SpellE>GetOutput</span>());<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
actor coordinates geometry, properties, transformation<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkActor</span></span> *<span class=SpellE>voxel_actor</span>
= <span class=SpellE>vtkActor::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_actor</span>-><span class=SpellE><span class=GramE>SetMapper</span></span><span
class=GramE>(</span><span class=SpellE>voxel_map</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_actor</span>-><span class=SpellE><span class=GramE>GetProperty</span></span><span
class=GramE>(</span>)-><span class=SpellE>SetColor</span>(0, 0 ,1);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
setup a <span class=SpellE>renderer</span> and render window<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkRenderer</span></span> *<span class=SpellE>voxel_renderer</span>
= <span class=SpellE>vtkRenderer::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkRenderWindow</span></span> *<span
class=SpellE>voxel_Win</span> = <span class=SpellE>vtkRenderWindow::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_Win</span>-><span class=SpellE><span class=GramE>AddRenderer</span></span><span
class=GramE>(</span><span class=SpellE>voxel_renderer</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_Win</span>-><span class=SpellE><span class=GramE>SetWindowName</span></span><span
class=GramE>(</span>"<span class=SpellE>Voxel</span> Grid");<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>#<span class=SpellE>ifdef</span> _DEBUG<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//<span
class=SpellE>voxel_Win</span>-><span class=GramE>Print(</span><span
class=SpellE>cout</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>#<span class=SpellE>endif</span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
an <span class=SpellE>interactor</span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE><span class=GramE>vtkRenderWindowInteractor</span></span> *<span
class=SpellE>voxel_Inter</span> = <span class=SpellE>vtkRenderWindowInteractor::New</span>();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_Inter</span>-><span class=SpellE><span class=GramE>SetRenderWindow</span></span><span
class=GramE>(</span><span class=SpellE>voxel_Win</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
add the actor to the scene<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_renderer</span>-><span class=SpellE><span class=GramE>AddActor</span></span><span
class=GramE>(</span><span class=SpellE>voxel_actor</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_renderer</span>-><span class=SpellE><span class=GramE>SetBackground</span></span><span
class=GramE>(</span>0, 0, 0); // Background color white<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
render an image (lights and cameras are created automatically)<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_Win</span>-><span class=GramE>Render(</span>);<span
style='mso-tab-count:1'> </span>// IN THIS LINE THE
PROGRAM CRASHES: Unhandled exception in Voxelizer.exe (VTKCOMMON.dll): 0xC0000005:
Access Violation<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:6'> </span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-spacerun:yes'> </span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
begin mouse interaction<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_Inter</span>-><span class=GramE>Start(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//*/<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
########################################################################<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
free memory resources<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
<span class=SpellE>voxel</span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_Inter</span>-><span class=GramE>Delete(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_Win</span>-><span class=GramE>Delete(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_renderer</span>-><span class=GramE>Delete(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_actor</span>-><span class=GramE>Delete(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_map</span>-><span class=GramE>Delete(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=GramE>filter</span>->Delete();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>voxel_model</span>-><span class=GramE>Delete(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span>//
model<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_Inter</span>-><span class=GramE>Delete(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_Win</span>-><span class=GramE>Delete(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_renderer</span>-><span class=GramE>Delete(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_actor</span>-><span class=GramE>Delete(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=SpellE>model_map</span>-><span class=GramE>Delete(</span>);<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:2'> </span><span
class=GramE>model</span>->Delete();<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:1'> </span>}<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-tab-count:1'> </span><span
class=GramE>return</span> 0;<span style='mso-tab-count:1'> </span>//
All OK, terminate <span class=SpellE>applcation</span><o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>}<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>So something is wrong about my setup of the <span
class=SpellE>voxel</span> rendering process. <span class=GramE>Anyone familiar
with this problem?</span> Is something wrong in my code?<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Any suggestions will be highly appreciated.<o:p></o:p></span></font></p>
</div>
</body>
</html>