[vtkusers] Fwd: Unsure how to use vtkDelaunay3D

vtk matt vtkmatt at gmail.com
Mon Jun 1 21:00:41 EDT 2015

Yeah this was my understanding.  Any idea then why I only see surface
triangles when I render it?  I set my actor to wireframe mode and I see no
internal structure.  Maybe this is just a visualization thing?  With the
info you provided I did iterate across all cells and cast them to type
vtkTetra and they all have four faces which is good.  It would be great to
see this visualized though as a sanity check that I do in fact have
tetrahedrons.  Thanks again.

On Mon, Jun 1, 2015 at 5:52 PM, David Gobbi <david.gobbi at gmail.com> wrote:

> The documentation for vtkDelaunay3D says that it outputs only tetrahedrons
> unless you specifically set the "Alpha" value (I'm not 100% sure what
> "Alpha" is for, but since you aren't using it, I don't think you need to
> worry about it).
>  - David
> On Mon, Jun 1, 2015 at 6:19 PM, vtk matt <vtkmatt at gmail.com> wrote:
>> Hi David,
>> Thanks for the clarification.  I
>> ran tets->GetOutput()->GetNumberOfElements(vtkDataObject::CELL) and got a
>> value of 18 for my input which would make sense as the number of
>> tetrahedrons.  Do you know if I can expect these cells to in fact contain
>> tetrahedrons then?
>> --Matt
>> On Wed, May 27, 2015 at 8:17 PM, David Gobbi <david.gobbi at gmail.com>
>> wrote:
>>> Hi Matt,
>>> You've been misled by VTK's rather terse documentation:
>>>   Get the number of elements for a specific attribute type (POINT, CELL,
>>> etc.).
>>> For a mesh, you can call GetNumberOfElements(vtkDataObject::POINT) or
>>> you can call GetNumberOfElements(vtkDataObject::CELL).  Those are the only
>>> two choices.  You can't ask for a particular type of cell, all you can do
>>> is ask it to return the total number of cells.
>>>  - David
>>> On Wed, May 27, 2015 at 5:41 PM, vtk matt <vtkmatt at gmail.com> wrote:
>>>> Hi all,
>>>> I have spent the past few days trying to figure out how to use
>>>> vtkDelaunay3D properly and decided I'd better seek out some help.  My goal
>>>> is relatively straight-forward:  Given a set of points in 3D, generate a
>>>> tetrahedral mesh, and use the results to determine which tetrahedron
>>>> contains an arbitrary point.
>>>> In its simplest form I am doing the following:
>>>> vtkSmartPointer<vtkDelaunay3D> tets =
>>>> vtkSmartPointer<vtkDelaunay3D>::New();
>>>> tets->SetInput(points);
>>>> tets->Update();
>>>> printf("Number of tets: %d\n",
>>>> tets->GetOutput()->GetNumberOfElements(VTK_TETRA));
>>>> The output claims there are zero tetrahedrons.  However if I render an
>>>> actor from tets->GetOutput(), I am able to visualize a wireframe surface
>>>> mesh, so I know it's doing something.
>>>> So I guess my questions are the following:  Why does the output not
>>>> contain any tetrahedrons?  Why does the mesh only show surface triangles?
>>>> Ultimately what is the proper way to construct a tetrahedral mesh such that
>>>> I can query which tetrahedron contains an arbitrary point?
>>>> Thanks.
>>>> --Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20150601/298e305a/attachment.html>

More information about the vtkusers mailing list