<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 http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-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.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
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=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal>I have a relatively large 2D mesh with 2000-5000 nodes and
4000-9000 elements. Each node and each element has a vtkFollower with
vtkVectorText. It may be a memory dump in vtk. The following is my
code for developing the element and node numbers in the mesh. The mesh
has a vtkPointPicker, too.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><b><span style='font-family:"Courier New"'> public
void setNodeNumbers (boolean node) {<o:p></o:p></span></b></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
TestMesh.Update();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
if (!node) {<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
for (int i = 0; i < NumberOfNodes; i++)
renWin.GetRenderer().RemoveActor(nodeActor[i]);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
}<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
else {<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeMapper = new vtkPolyDataMapper[NumberOfNodes];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeActor = new vtkFollower[NumberOfNodes];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeText = new vtkVectorText[NumberOfNodes];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeScale = TestMesh.GetLength() / 500;<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
for (int i = 0; i < NumberOfNodes; i++) {<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeText[i] = new vtkVectorText();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeMapper[i] = new vtkPolyDataMapper();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeActor[i] = new vtkFollower();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeActor[i].PickableOff();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeText[i].SetText(Integer.toString(i));<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeMapper[i].SetInput(nodeText[i].GetOutput());<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeActor[i].SetMapper(nodeMapper[i]);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeActor[i].SetScale(nodeScale, nodeScale, nodeScale);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeActor[i].SetPosition(TestMesh.GetPoints().GetPoint(i));<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
nodeActor[i].GetProperty().SetColor(0.14, 0.21, 0.09);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
renWin.GetRenderer().AddActor(nodeActor[i]);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
}<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
}<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
renWin.Render();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'> }<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'> <o:p></o:p></span></p>
<p class=MsoNormal><b><span style='font-family:"Courier New"'> public
void setElementNumbers (boolean element) {<o:p></o:p></span></b></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
TestMesh.Update();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
if (!element) {<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
for (int i = 0; i < NumberOfElements; i++)
renWin.GetRenderer().RemoveActor(elementActor[i]);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
}<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
else {<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementMapper = new vtkPolyDataMapper[NumberOfElements];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'> elementActor
= new vtkFollower[NumberOfElements];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementText = new vtkVectorText[NumberOfElements];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementScale = TestMesh.GetLength() / 500;<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
for (int i = 0; i < NumberOfElements; i++) {<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementText[i] = new vtkVectorText();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementMapper[i] = new vtkPolyDataMapper();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementActor[i] = new vtkFollower();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementActor[i].PickableOff();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementText[i].SetText(Integer.toString(i));<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'> elementMapper[i].SetInput(elementText[i].GetOutput());<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementActor[i].SetMapper(elementMapper[i]);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementActor[i].SetScale(elementScale, elementScale, elementScale);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidx1 = TestMesh.GetCell(i).GetPoints().GetPoint(0)[0];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidy1 = TestMesh.GetCell(i).GetPoints().GetPoint(0)[1];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidx2 = TestMesh.GetCell(i).GetPoints().GetPoint(1)[0];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidy2 = TestMesh.GetCell(i).GetPoints().GetPoint(1)[1];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidx3 = TestMesh.GetCell(i).GetPoints().GetPoint(2)[0];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidy3 = TestMesh.GetCell(i).GetPoints().GetPoint(2)[1];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
if (TestMesh.GetCell(i).GetCellType() == 9) {<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidx4 = TestMesh.GetCell(i).GetPoints().GetPoint(3)[0];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidy4 = TestMesh.GetCell(i).GetPoints().GetPoint(3)[1];<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
}<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidx = ((centroidx1 + centroidx2 + centroidx3) / 3) -
(elementActor[i].GetLength() / 2);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidy = ((centroidy1 + centroidy2 + centroidy3) / 3);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
if (TestMesh.GetCell(i).GetCellType() == 9) {<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidx =
((centroidx1 + centroidx2 + centroidx3 + centroidx4) / 4)<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
- (elementActor[i].GetLength() / 2);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
centroidy = ((centroidy1 + centroidy2 + centroidy3 + centroidy4) / 4);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
}<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementActor[i].SetPosition(centroidx, centroidy, 0);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
elementActor[i].GetProperty().SetColor(1.0, 1.0, 0.0);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
renWin.GetRenderer().AddActor(elementActor[i]);<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
}<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
}<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
renWin.Render();<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>
<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'> }<o:p></o:p></span></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>The node numbers are placed at the point locations.
However, the element numbers are placed in the center of the elements.
When each element text object is created, the position to place the object is the
centroid of the triangle or quadrilateral in the mesh. On larger meshes,
I often get an EXCEPTION_ACCESS_VIOLATION when I run it in NetBeans. I
set the maximum memory to the highest possible value and I get:<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><span style='font-family:"Courier New"'># An unexpected
error has been detected by Java Runtime Environment:<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>#<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>#
EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0dea2340, pid=2596, tid=2868<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>#<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'># Java VM: Java
HotSpot(TM) Client VM (1.6.0_02-b06 mixed mode)<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'># Problematic frame:<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'># C [vtkCommon.dll+0x32340]<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>#<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'># An error report
file with more information is saved as hs_err_pid2596.log<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>#<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'># If you would like
to submit a bug report, please visit:<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>#
http://java.sun.com/webapps/bugreport/crash.jsp<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>#<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>Java Result: 1<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'>BUILD SUCCESSFUL
(total time: 1 minute 44 seconds)<o:p></o:p></span></p>
<p class=MsoNormal><span style='font-family:"Courier New"'><o:p></o:p></span></p>
<p class=MsoNormal>Does anyone know what is causing this? Any help would
be greatly appreciated!<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><b><i><span style='font-size:10.0pt;font-family:"Verdana","sans-serif";
color:#00337F'>Bill Lucarell</span></i></b><span style='font-size:8.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span style='color:navy'><o:p> </o:p></span></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>