[vtkusers] Activiz.Net System.AccessViolationException updating pipeline
mirko heuegger
mheuegger at gmail.com
Mon Aug 8 04:59:15 EDT 2016
Hello!
I don't now if this helps, but errors like '.AccessViolations' are mostly
(at least for activiz.net) the result of missing references to VTK-objects
(cause the .net garbage collector may clean up objects that are still used
by VTK).
See also <http://www.vtk.org/pipermail/vtkusers/2011-February/066096.html>.
hth
mirko
On Tue, Aug 2, 2016 at 10:16 PM, Karl Smith <bulkmailaddress at gmail.com>
wrote:
> Hi,
> I'm using Activiz.Net x64 5.8 from the nuget package. We are looking to
> replace WPF graphics with VTK. What we are trying to do as a starting
> point is convert some WPF MeshGeometry3D objects into vtkPolyData and
> display them. This is working fine and we could see and interact with the
> models.
>
> The only problem was that the models looked faceted (WPF calculated the
> normals automatically and VTK did not). We went back to add in the
> vtkPolyDataNormals filter, but are consistently receiving System.AccessVioloationExceptions
> when executing the pipeline. I have put together the following code
> snippet to demonstrate the problem. If called twice (with the same data),
> the second time results in the exception being thrown on the
> normal.Update() call.
>
> vtkPoints points = vtkPoints.New();
> vtkCellArray polys = vtkCellArray.New();
> ... populate points and polys ...
>
> vtkPolyData polyData = vtkPolyData.New();
> polyData.SetPoints(points);
> polyData.SetPolys(polys);
> vtkPolyDataNormals normal = vtkPolyDataNormals.New();
> normal.SetInput(polyData);
> normal.Update();
>
> Any ideas?
>
> Could this behavior be from the way that we convert the MeshGeometry3D to
> vtkPolyData?
>
> MeshGeometry3D mesh = ...
>
> vtkPoints points = vtkPoints.New();
> points.SetNumberOfPoints(mesh.Positions.Count);
> vtkCellArray polys = vtkCellArray.New();
> polys.SetNumberOfCells(mesh.TriangleIndices.Count
> / 3);
>
> for (int i = 0; i < mesh.Positions.Count; i++)
> {
> points.InsertPoint(i, mesh.Positions[i].X,
> mesh.Positions[i].Y, mesh.Positions[i].Z);
> }
> for (int i = 0; i < mesh.TriangleIndices.Count;
> i++)
> {
> vtkIdList trianglePoints = vtkIdList.New();
> trianglePoints.SetNumberOfIds(3);
> trianglePoints.InsertId(0,
> mesh.TriangleIndices[i++]);
> trianglePoints.InsertId(1,
> mesh.TriangleIndices[i++]);
> trianglePoints.InsertId(2,
> mesh.TriangleIndices[i]);
> polys.InsertNextCell(trianglePoints);
> }
>
> vtkPolyData polyData = vtkPolyData.New();
> polyData.SetPoints(points);
> polyData.SetPolys(polys);
>
> _______________________________________________
> 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 VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Search the list archives at: http://markmail.org/search/?q=vtkusers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers
>
>
--
Real programmers don't document; if it was
hard to write, it should be hard to understand.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160808/d2d9629d/attachment.html>
More information about the vtkusers
mailing list