<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="place"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="City"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:"Wingdings 2";
panose-1:5 2 1 2 1 5 7 7 7 7;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:Arial;
color:windowtext;}
@page Section1
{size:612.0pt 792.0pt;
margin:45.1pt 1.0cm 53.85pt 1.0cm;}
div.Section1
{page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'>Dear All,<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'>I am having trouble (again) with clipping planes. I
am trying to create a viewer to view results of an FE analysis. Part of the results
are the displacements at the nodes of the finite element mesh. I read in the FE
mesh into a vtkUnstructuredGrid with the displacements as a vector field. I
then create a displaced geometry by adding them to the vtkUnstructuredGrid
geometry as follows:<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'>void CSampleDoc::AddDisplacement(float factor)<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'>{ vtkFloatArray *pDisplacement =
(vtkFloatArray*)this->pUnstructuredGrid->GetPointData()->GetVectors()
;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> vtkPoints* pNodalGeometry =
this->pUnstructuredGrid->GetPoints() ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> if (pDisplacement==NULL)<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> { AfxMessageBox("No displacement
set") ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> return ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> }<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> float newcoords[3] ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> float* x ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> float* delta ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> for (int i = 0; i <
pNodalGeometry->GetNumberOfPoints(); i++)<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> { <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> x = pNodalGeometry->GetPoint(i) ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> delta = pDisplacement->GetTuple(i) ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> for (int j = 0; j < 3; j++)<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> { newcoords[j] = x[j] + factor*delta[j] ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> }<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> pNodalGeometry->SetPoint(i,newcoords) ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> }<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> this->pUnstructuredGrid->Update() ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'>
this->pGeometry->SetInput(pUnstructuredGrid) ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'>
this->pMeshMapper->SetInput(pGeometry->GetOutput());<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> this->pMeshMapper->Update() ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'>
this->pMeshActor->SetMapper(this->pMeshMapper) ;<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'>}<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'>This works (with some other quirky behaviour which I
have circumvented). But a problem that I am having difficulty with is that the
clipping planes remain as if the geometry hadn’t been altered. Thus, as I
rotate the object (in trackball camera mode) the displaced object disappears. I
have checked the bounds of the viewable objects (using Renderer->ComputeVisiblePropBounds(bounds)
;) and they are unaltered – thus all the AutoClipping is thrown out of
whack. It may very well be that (a) I am doing things that are not meant to be
catered for in vtk or (b) there is a better (preferably simpler) way of achieving
this effect. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'>All suggestions gratefully welcomed.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'>Jim<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><b><font size=3 face=Arial><span lang=EN-IE
style='font-size:12.0pt;font-family:Arial;font-weight:bold'>James C Robinson</span></font></b><font
size=2 face=Arial><span lang=EN-IE style='font-size:10.0pt;font-family:Arial'>,
PhD, Chartered Engineer,</span></font><span lang=EN-IE><o:p></o:p></span></p>
<p class=MsoNormal><font size=3 face=Wingdings><span lang=EN-IE
style='font-size:12.0pt;font-family:Wingdings'>+</span></font><span lang=EN-IE> </span><font
size=2 face=Arial><span lang=EN-IE style='font-size:10.0pt;font-family:Arial'>42
Rivergrove,</span></font><span lang=EN-IE><o:p></o:p></span></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> Glanmire,</span></font><span lang=EN-IE><o:p></o:p></span></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> Co. <st1:place w:st="on"><st1:City w:st="on">Cork</st1:City></st1:place>,</span></font><span
lang=EN-IE><o:p></o:p></span></p>
<p class=MsoNormal><font size=2 face=Arial><span lang=EN-IE style='font-size:
10.0pt;font-family:Arial'> <st1:place w:st="on">Eire</st1:place></span></font><span
lang=EN-IE><o:p></o:p></span></p>
<p class=MsoNormal><font size=3 face="Wingdings 2"><span lang=EN-IE
style='font-size:12.0pt;font-family:"Wingdings 2"'>'</span></font><span
lang=EN-IE> +353 21 4822028<o:p></o:p></span></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span lang=EN-IE
style='font-size:12.0pt'> +353 87 2393010<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=3 face="Wingdings 2"><span lang=EN-IE
style='font-size:12.0pt;font-family:"Wingdings 2"'>6</span></font><span
lang=EN-IE> +353 21 4822028<o:p></o:p></span></p>
<p class=MsoNormal><font size=3 face=Wingdings><span lang=EN-IE
style='font-size:12.0pt;font-family:Wingdings'>-</span></font><span lang=EN-IE> <font
color=blue><span style='color:blue'>j.robinson@kepler-systems.com</span></font> </span><span
lang=EN-IE><o:p></o:p></span></p>
<p class=MsoNormal><font size=3 face="Times New Roman"><span lang=EN-IE
style='font-size:12.0pt'><o:p> </o:p></span></font></p>
</div>
</body>
</html>