[vtkusers] how to get the details about the object created by vtk sources?

Toron J. ji_wi at yahoo.com
Mon Oct 22 19:39:00 EDT 2007


Hi Shriram,

Thanks for response!

I got the error message "error: invalid use of incomplete type 'struct vtkPolyData' " related to the line "points = cone->GetOutput()->GetPoints();" when I compiled my program. I do not know how to correct it.

Actually I want to move the vertex with the max X value of the cone and change the colors of the surfaces conjoint to this vertex. So i have to get all the vertices information including the each x-y-z and the points-index (rendering order) of each surface.

Toron

my codes is here
--------------------------------------------------------------
#include "vtkPolyDataMapper.h"
#include "vtkRenderWindow.h"
#include "vtkCamera.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkPoints.h"
#include "vtkCellArray.h"
#include "vtkIdType.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkInteractorStyleTrackballCamera.h"

int main( int argc, char *argv[] )
{
  vtkConeSource *cone = vtkConeSource::New();
  cone->SetHeight( 3.0 );
  cone->SetRadius( 1.0 );
  cone->SetResolution( 10 );
 
  vtkPoints* points = vtkPoints::New();
  points = cone->GetOutput()->GetPoints();

  for (vtkIdType i = 0; i < points->GetNumberOfPoints(); i++)
  {
    double Pt[3];
    points->GetPoint(i, Pt);
    // ...
    // Pt will now have the x, y, z coordinates of vertex i.
  }

  //vtkCellArray *indexes = vtkCellArray::New();
  //indexes = cone->GetOutput()->GetPoints(); 

  vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();
  coneMapper->SetInput( cone->GetOutput() );

  vtkActor *coneActor = vtkActor::New();
  coneActor->SetMapper( coneMapper );

  vtkRenderer *ren1= vtkRenderer::New();
  ren1->AddActor( coneActor );
  ren1->SetBackground( 0.1, 0.2, 0.4 );

  vtkRenderWindow *renWin = vtkRenderWindow::New();
  renWin->AddRenderer( ren1 );
  renWin->SetSize( 300, 300 );

  vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
  iren->SetRenderWindow(renWin);
  iren->Initialize();
  iren->Start();

  cone->Delete();
  coneMapper->Delete();
  coneActor->Delete();
  ren1->Delete();
  renWin->Delete();

  return 0;
}
--------------------------------------------------------------




Shriram Iyer <shriram.uc at gmail.com> wrote: Toron,

I'm not quite sure what you are trying to do here. If you just want to the location of 
each vertex in the cone, you can use following code.

vtkPoints* points = vtkPoints::New(); 
points = cone->GetOutput()->GetPoints(); 

for (vtkIdType i = 0; i < points->GetNumberOfPoints(); i++)
{
  double Pt[3];
  points->GetPoint(i, Pt);
  // Pt will now have the x, y, z coordinates of vertex i.
 ...
}

 HTH.
Shriram

On 10/22/07, Toron J. <ji_wi at yahoo.com> wrote: Thanks, Shriram.

I do know how to read 'cone->GetOutput()->GetPoints()' you suggested. So I tired to add the below codes. 
-------------------------------------------------------------------------
   vtkPoints *points = vtkPoints::New();
    points = cone->GetOutput()->GetPoints(); 

  vtkCellArray *indexes = vtkCellArray::New();
    indexes = cone->GetOutput()->GetPoints(); 
------------------------------------------------------------------------ 
They did work. Could you correct them or let me know any example like this?

Toron





Shriram Iyer < shriram.uc at gmail.com> wrote: Use cone->GetOutput()->GetPoints() to get the vertices.

Shriram
 
On 10/22/07, Toron J. <ji_wi at yahoo.com > wrote: Hi All,

I used the following codes to build a simple cone.
---------------------------------------------------------------------------------------  
  vtkConeSource *cone = vtkConeSource::New();
      cone->SetHeight( 3.0 );
      cone->SetRadius( 1.0 );
      cone->SetResolution( 6 );
  
  vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();  
      coneMapper->SetInput( cone->GetOutput()  );
--------------------------------------------------------------------------------------
Does any one can help me to know how to get the position (x,y,z) of each vertex and the rendering index?      Thanks in advance!  

Toron
 __________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
  http://mail.yahoo.com 

_______________________________________________
This is the private VTK discussion list.
Please keep messages on-topic. Check the FAQ at:   http://www.vtk.org/Wiki/VTK_FAQ
Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtkusers  



 
 __________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
 http://mail.yahoo.com 



 

 __________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20071022/9c4ee70e/attachment.htm>


More information about the vtkusers mailing list