[vtkusers] Fwd: Unsure how to use vtkDelaunay3D
David Gobbi
david.gobbi at gmail.com
Mon Jun 1 21:06:39 EDT 2015
That's what the vtkDataSetMapper does when it renders: if it's input is a
3D mesh, then it just renders the surface. You'd probably need to use
something like vtkExtractEdges to turn it into a space-filling wireframe.
I don't do much mesh work with VTK, so hopefully someone else can chime in
with different ways to render 3D meshes.
- David
On Mon, Jun 1, 2015 at 7:00 PM, vtk matt <vtkmatt at gmail.com> wrote:
> 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/61ed7d14/attachment.html>
More information about the vtkusers
mailing list