<div dir="ltr">All,<div><br></div><div>I am looking for a vtk data structure with the following requirements:</div><div><br></div><div>-- I want to be able to add individual points at random, rather than construct the data structure from a point list.  When the point is added I want the id of the point added returned</div>

<div><br></div><div>-- I want it to be able to detect if the point is already contained, and if so return the id of the contained point, else the newly added id - so strongly enforce no duplication.  I would prefer a very tight tolerance for duplicate point detection.</div>

<div><br></div><div>-- I need access to the underlying data for an external programme, so I&#39;m hoping that they&#39;re stored as x_y_x for point 0 and then x_y_z for point 1 etc.  I can live without this, but would prefer access to contiguous underlying storage.</div>

<div><br></div><div>-- Finally, and most importantly, I want to be able to delete points, without it invalidating previously returned id&#39;s for other points that remain after deletion.  So deletion should not re-number the point ids once a point is removed.  It should also not be an overly costly process to delete, as this is likely to happen just as frequently as addition.  I would prefer deletion over contiguous point storage, so if I have to sacrifice one then it would be the above requirement rather than this one.</div>

<div><br></div><div>I thought I had most of the above with vtkMergePoints, but I don&#39;t think I can remove points with that data structure?  Or at least I couldn&#39;t figure that out?</div><div><br></div><div>Can anybody recommend anything in vtk that can do all of the above?  Or indeed as equally valid confirm that the above cannot all be met currently within vtk?</div>

<div><br></div><div>Speed and efficiency of both point addition and removal are vital.  I only care about 3D points, so not bothered about connectivity of faces/cells etc.</div><div><br></div><div>Cheers,</div><div>Andy</div>

</div>