<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>

<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=DE link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>This is a good idea. But how does this work for a cube? How is
it possible to add an Actor/Texture to each side of the cube? Do you have a
code example?<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Andy<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Wes Turner
[mailto:wes.turner@kitware.com] <br>
<b>Gesendet:</b> Dienstag, 24. November 2009 23:02<br>
<b>An:</b> André Rohde<br>
<b>Cc:</b> vtkusers@vtk.org<br>
<b>Betreff:</b> Re: [vtkusers] Textures<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>I believe that there is a limit of one texture per vtkActor,
which gives you two alternatives. &nbsp;Either you need to combine your 6 views
into a single texture or you need to make each side of the cube a separate
actor.<o:p></o:p></p>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'>- Wes<o:p></o:p></p>

<div>

<p class=MsoNormal>2009/11/24 &quot;André Rohde&quot; &lt;<a
href="mailto:Rohy@gmx.de">Rohy@gmx.de</a>&gt;<o:p></o:p></p>

<p class=MsoNormal>Dear Vtk Users,<br>
i´d like to map one texture to each side of a cube (6 sides = 6 different
textures) from different arrays. (Only one Array in my Code yet)<br>
Mapping one texture to the cube works fine for me. But i don´t have an idea how
this is gonna work for each side of a cube. The general idea behind my program
is to take an specific amount of snapshots from a camera and generate an
array/cube of this pictures in vtk.<br>
<br>
Here´s my Code:<br>
<br>
//First Array &gt; Image Data should be mapped to the first side of the cube...<br>
vtkFloatArray *vtkArray = vtkFloatArray::New();<br>
vtkArray-&gt;SetNumberOfComponents(1);<br>
vtkArray-&gt;SetNumberOfTuples(1392*1040);<br>
<br>
unsigned indexInverted = 0;<br>
<br>
for(int k = 0; k &lt; 1040; k++)<br>
{<br>
&nbsp;for(int l = 0; l &lt; 1392; l++)<br>
&nbsp;{<br>
&nbsp;//pcFrame contains the ImageData from the Camera<br>
&nbsp;vtkArray-&gt;SetTuple1(indexInverted,pcFrame[((1392*1040)-(1392*(k+1)))+l]);<br>
&nbsp;indexInverted++;<br>
&nbsp;}<br>
}<br>
<br>
vtkImageData *myImage = vtkImageData::New();<br>
myImage-&gt;SetDimensions(1392,1040,1);<br>
myImage-&gt;SetSpacing(1,1,1);<br>
myImage-&gt;SetOrigin(0,0,0);<br>
myImage-&gt;SetNumberOfScalarComponents(1);<br>
myImage-&gt;SetScalarTypeToFloat();<br>
myImage-&gt;AllocateScalars();<br>
myImage-&gt;GetPointData()-&gt;SetScalars(vtkArray);<br>
<br>
int i;<br>
//Cube Coordinates<br>
static float x[8][3]={{0,0,0}, {1392,0,0}, {1392,1040,0}, {0,1040,0}, &nbsp;
{0,0,700}, {1392,0,700}, {1392,1040,700}, {0,1040,700}};<br>
<br>
static vtkIdType pts[6][4]={{0,1,2,3},{4,5,6,7}, {0,1,5,4},{1,2,6,5},
{2,3,7,6}, {3,0,4,7}};<br>
<br>
// Color LookupTable<br>
vtkLookupTable *table = vtkLookupTable::New();<br>
table-&gt;SetTableRange(0,255);<br>
table-&gt;SetValueRange(0.0,1.0);<br>
table-&gt;SetSaturationRange(0.0,0.0);<br>
table-&gt;SetHueRange(0.0,0.0);<br>
table-&gt;SetAlphaRange(1.0,1.0);<br>
table-&gt;SetNumberOfColors(256);<br>
table-&gt;Build();<br>
<br>
<br>
// Create texture<br>
vtkTexture *atext = vtkTexture::New();<br>
atext-&gt;SetInput(myImage);<br>
atext-&gt;SetLookupTable(table);<br>
atext-&gt;InterpolateOff();<br>
<br>
// We'll create the building blocks of polydata including data attributes.<br>
vtkPolyData *cube = vtkPolyData::New();<br>
vtkPoints *points = vtkPoints::New();<br>
vtkCellArray *polys = vtkCellArray::New();<br>
vtkFloatArray *tCoords = vtkFloatArray::New();<br>
<br>
tCoords-&gt;SetNumberOfComponents(2);<br>
tCoords-&gt;InsertTuple2(0, 0, 0);<br>
tCoords-&gt;InsertTuple2(1, 1, 0);<br>
tCoords-&gt;InsertTuple2(2, 1, 1);<br>
tCoords-&gt;InsertTuple2(3, 0, 1);<br>
tCoords-&gt;InsertTuple2(4, 0, 0);<br>
tCoords-&gt;InsertTuple2(5, 1, 0);<br>
tCoords-&gt;InsertTuple2(6, 1, 1);<br>
tCoords-&gt;InsertTuple2(7, 0, 1);<br>
<br>
// Load the point, cell, and data attributes.<br>
for (i=0; i&lt;8; i++) points-&gt;InsertPoint(i,x[i]);<br>
for (i=0; i&lt;6; i++) polys-&gt;InsertNextCell(4,pts[i]);<br>
<br>
// We now assign the pieces to the vtkPolyData.<br>
cube-&gt;SetPoints(points);<br>
points-&gt;Delete();<br>
cube-&gt;SetPolys(polys);<br>
polys-&gt;Delete();<br>
cube-&gt;GetPointData()-&gt;SetTCoords(tCoords);<br>
tCoords-&gt;Delete();<br>
<br>
<br>
vtkPolyDataMapper *cubeMapper = vtkPolyDataMapper::New();<br>
cubeMapper-&gt;SetInput(cube);<br>
vtkActor *cubeActor = vtkActor::New();<br>
cubeActor-&gt;SetMapper(cubeMapper);<br>
cubeActor-&gt;SetTexture(atext);<br>
<br>
// The usual rendering stuff.<br>
vtkCamera *camera = vtkCamera::New();<br>
camera-&gt;SetPosition(1,1,1);<br>
camera-&gt;SetFocalPoint(0,0,0);<br>
<br>
vtkRenderer *renderer = vtkRenderer::New();<br>
vtkRenderWindow *renWin = vtkRenderWindow::New();<br>
renWin-&gt;AddRenderer(renderer);<br>
<br>
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();<br>
vtkWidget-&gt;SetRenderWindow(renWin);<br>
<br>
renderer-&gt;AddActor(cubeActor);<br>
renderer-&gt;SetActiveCamera(camera);<br>
renderer-&gt;ResetCamera();<br>
renderer-&gt;SetBackground(0.4,0.5,0.6);<br>
<br>
//interact with data<br>
renWin-&gt;Render();<br>
iren-&gt;Start();<br>
<br>
with kind regards<br>
Andy<br>
--<br>
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!<br>
Jetzt freischalten unter <a href="http://portal.gmx.net/de/go/maxdome01"
target="_blank">http://portal.gmx.net/de/go/maxdome01</a><br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a
href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a
href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><o:p></o:p></p>

</div>

<p class=MsoNormal><br>
<br clear=all>
<br>
-- <br>
Wesley D. Turner, Ph.D.<br>
Kitware, Inc.<br>
Technical Leader<br>
28 Corporate Drive<br>
Clifton Park, NY 12065-8662<br>
Phone: 518-881-4920<o:p></o:p></p>

</div>

</div>

</body>

</html>