[vtkusers] problem with vtkPolyData

Vincent BAUDET vbaudet at bat710.univ-lyon1.fr
Tue Dec 17 06:01:45 EST 2002


Hello everybody,

I have began to use vtk in order to know if it was accurate enough for
modeling and animation.

I used a vtkPolyData
it seemed very easy to use with the cube example in C++
but when i tried to make my own model :
              first of all, 2 tetrahedra with links between points, I
was surprised to find that my polydata had the origin
point, that I never put in it and that this point was linked to the
others or that some links I never defined were
obtained.
              I then tried to change the order in the link affectation
at one time this point disapear.
              Almost, I used the same code in an other PC, and the point
was not added.... (strange)

Is there any allocation I don't do and I should do?
Is there any people that can answer what happened?

Here is one example of code (look  at the definition liens.... and try
with this state and try with the change I used):

#include "vtkPoints.h"
#include "vtkCellArray.h"
#include "vtkPolyData.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkMath.h"
#include "vtkFloatArray.h"

float pt[5][3]={{10,10,10} , {20,30,10} , {30,20,10} , {20,20,35},
{15,45,65}};

//Look Here

int liens[9][2]={{1,2} ,{2,0},
{1,0},{1,3},{3,0},{2,3},{3,4},{4,2},{1,4}}; // replace (1,4) by (4,1)

int
faces[7][3]={{2,1,0},{0,1,3},{0,2,3},{1,2,3},{4,2,3},{4,3,1},{4,1,2}};

int main()
{
  unsigned int i;

  vtkPolyData *cube=vtkPolyData::New();

  vtkPoints *points=vtkPoints::New();

  for(i=0;i<(unsigned
int)(sizeof(pt)/(3*sizeof(float)));i++)points->InsertPoint(i,pt[i]);

  vtkCellArray *links=vtkCellArray::New();

  for(i=0;i<(unsigned
int)(sizeof(liens)/(2*sizeof(int)));i++)links->InsertNextCell(VTK_LINE,liens[i]);

  vtkCellArray *polys=vtkCellArray::New();

  for(i=0;i<(unsigned
int)(sizeof(faces)/(3*sizeof(int)));i++)links->InsertNextCell(VTK_TRIANGLE,faces[i]);

  cube->SetPoints(points);
  points->Delete();

  cube->SetLines(links);
  links->Delete();

  cube->SetStrips(polys);
  polys->Delete();

  vtkPolyDataMapper *cubeMapper = vtkPolyDataMapper::New();
  cubeMapper->SetInput(cube);
  cubeMapper->SetScalarRange(0,7);

  vtkActor* cubeActor = vtkActor::New();
  cubeActor->SetMapper(cubeMapper);
  cubeActor->GetProperty()->SetColor(0,0,1);

  vtkRenderer *renderer = vtkRenderer::New();
  vtkRenderWindow *renWin = vtkRenderWindow::New();
  renWin->AddRenderer(renderer);

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

  renderer->AddActor(cubeActor);
  renderer->SetBackground(1,1,1);

  renWin->SetSize(300,300);

  // interact with data
  renWin->Render();
  iren->Start();

  // Clean up

  cube->Delete();
  cubeMapper->Delete();
  cubeActor->Delete();
  renderer->Delete();
  renWin->Delete();
  iren->Delete();

  return 0;

}



Thank you for your answer.

--
===============================================================================
e-mail : vbaudet at bat710.univ-lyon1.fr
Batiment 710, UFR Informatique, Universite Claude Bernard Lyon 1
43 boulevard du 11 novembre 1918, 69622 Villeurbanne cedex, France


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20021217/bf9e33b9/attachment.htm>


More information about the vtkusers mailing list